/*
#include <stdio.h>
char arr[10][10]={};
int a,b;
void dfs(int i,int j)
{
if(i<0 || i>=10 || j<0 || j>=10||arr[i][j]=='*') return;
arr[i][j]='*';
dfs(i+1,j);
dfs(i-1,j);
dfs(i,j+1);
dfs(i,j-1);
}
int main()
{
int i,j;
for(i=0; i<10; i++){
for(j=0; j<10; j++){
scanf("%c ",&arr[i][j]);
}
}
scanf("%d %d",&a,&b);
dfs(b,a);
for(i=0; i<10; i++){
for(j=0; j<10; j++){
printf("%c",arr[i][j]);
}
printf("\n");
}
return 0;
}
#include <stdio.h>
int m,n,k,min,temp;
int i,j;
int cnt=0;
int arr1[1000]={};
int arr[101][101]={};
void o()
{
for(i=1; i<cnt; i++){
min=i;
for(j=i+1; j<=cnt; j++){
if(arr1[min]>arr1[j]){
min=j;
}
}
temp=arr1[i];
arr1[i]=arr1[min];
arr1[min]=temp;
}
for(i=1; i<=cnt; i++){
printf("%d ",arr1[i]);
}
}
void dfs(int i,int j)
{
if(i>=n || i<0 || j>=m || j<0 || arr[i][j]!=0) return;
arr1[cnt]++;
arr[i][j]=1;
dfs(i+1,j);
dfs(i-1,j);
dfs(i,j+1);
dfs(i,j-1);
}
int main()
{
int f;
int a,b,c,d;
scanf("%d %d %d",&m,&n,&k);
for(f=1; f<=k; f++){
scanf("%d %d %d %d",&a,&b,&c,&d);
for(i=a; i<c; i++){
for(j=b; j<d; j++){
arr[i][j]=1;
}
}
}
for(i=0; i<n; i++){
for(j=0; j<m; j++){
if(arr[i][j]==0){
cnt++;
dfs(i,j);
}
}
}
printf("%d\n",cnt);
for(i=1; i<=cnt; i++){
o(arr1[i]);
}
return 0;
}
*/
//#include <stdio.h>
//#include <string.h>
//int main()
//{
// int k,i,n;
// char arr[21]={};
// scanf("%d %s",&k,arr);
// n=strlen(arr);
// for(i=0; arr[i]!=NULL; i++)
// {
//
// }
//}
/*#include <stdio.h>
#include <string.h>
int main()
{
int i,n;
char arr[101]={};
gets(arr);
n=strlen(arr);
for(i=n-1; i>=0; i--){
printf("%c",arr[i]);
}
return 0;
}
*/