/*
#include <stdio.h>
int m, n, k, cnt=0;
int map[101][101]={};
int c[100]={};
int dfs(int a, int b)
{
if(a<0 || b<0 || a>=m || b>=n||map[a][b]!=0)
{
return ;
}
map[a][b]=1;
c[cnt]++;
dfs(a+1, b);
dfs(a-1, b);
dfs(a, b+1);
dfs(a, b-1);
}
int main()
{
int x1, y1, x2, y2, arr, cnt2=0;
scanf("%d %d %d", &m, &n, &k);
for(int i=0; i<k; i++)
{
scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
for(int j=y1; j<y2; j++)
{
for(int l=x1; l<x2; l++)
{
map[j][l]=1;
}
}
}
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
{
if(map[i][j]==0)
{
cnt2++;
cnt++;
dfs(i, j);
}
}
}
for(int i=1; i<cnt; i++)
{
for(int j=1; j<=cnt-i; j++)
{
if(c[j]>c[j+1])
{
arr=c[j];
c[j]=c[j+1];
c[j+1]=arr;
}
}
}
printf("%d\n", cnt2);
for(int i=1; i<=cnt2; i++)
{
printf("%d ", c[i]);
}
return 0;
}
*/
#include <stdio.h>
int queue[1000][1000]={};
int back=-1, front=-1;
int main()
{
}