/*
#include<stdio.h>
int queue[10001][2]= {};
int front=0,rear=0;
int count[101][101]={};
int ar[101][101]={};
int pi, pj,k,ct;
void push(int n,int m)
{
int i;
if(ar[n][m]!=0||n>k||m>k||n<0||m<0) return;
ct=count[pi][pj]+1;
count[n][m]=ct;
rear++;
queue[rear-1][0]=n;
queue[rear-1][1]=m;
ar[n][m]=1;
if(rear==10001)
{
for(i=front; i<rear; i++)
{
queue[i-front][0]=queue[i][0];
queue[i-front][1]=queue[i][1];
}
rear-=front;
front=0;
}
}
void pop()
{
int i;
if(front==0&&rear==0)
return;
else
{
pi=queue[front][0];
pj=queue[front][1];
front++;
if(front==rear)
{
front=0;
rear=0;
}
if(rear==100)
{
for(i=front; i<rear; i++)
{
queue[i-front][0]=queue[i][0];
queue[i-front][1]=queue[i][1];
}
rear-=front;
front=0;
}
}
}
int main()
{
int dir[4][2]={+1,0,-1,0,0,+1,0,-1};
int a,b,i,j,ct=2,p,q;
scanf("%d",&k);
scanf("%d %d",&a,&b);
push(a,b);
count[a][b]=1;
while(front!=rear)
{
pop();
for(int i=0;i<4;i++)
{
push(pi+dir[i][0],pj+dir[i][1]);
}
}
for(i=1;i<=k;i++)
{
for(j=1;j<=k;j++)
{
printf("%d ",count[i][j]);
}
printf("\n");
}
return 0;
}
*/
/*
#include<stdio.h>
int queue[625][2]= {};
int front=0,rear=0,k,pi,pj,count=0;
int ct[625]= {};
int arr[25][25]= {};
int ar[25][25]={};
void push(int n,int m)
{
int i;
if(ar[n][m]!=1||arr[n][m]!=0||n<0||m<0||n>=k||m>=k)
return;
if(ar[n][m]==1) ct[count-1]+=1;
rear++;
queue[rear-1][0]=n;
queue[rear-1][1]=m;
arr[n][m]=1;
ar[n][m]=0;
if(rear==625)
{
for(i=front; i<rear; i++)
{
queue[i-front][0]=queue[i][0];
queue[i-front][1]=queue[i][1];
}
rear-=front;
front=0;
}
}
void pop()
{
int i;
if(rear==0&&front==0)
return;
pi=queue[front][0];
pj=queue[front][1];
front++;
if(rear==625)
{
for(i=front; i<rear; i++)
{
queue[i-front][0]=queue[i][0];
queue[i-front][1]=queue[i][1];
}
rear-=front;
front=0;
}
}
void bfs(int i, int j) // ar[i][j]에서 bfs 실행
{
int dir[4][2]= {+1,0,-1,0,0,1,0,-1};
push(i,j);
while(front!=rear)
{
pop();
for(int l=0; l<4; l++)
{
push(pi+dir[l][0],pj+dir[l][1]);
}
}
}
int main()
{
int i,j,l;
scanf("%d",&k);
for(i=0; i<k; i++)
for(j=0; j<k; j++)
scanf("%1d",&ar[i][j]);
for(i=0; i<k; i++)
{
for(j=0; j<k; j++)
{
if(ar[i][j]==1)
{
count++;
bfs(i,j);
}
}
}
printf("%d\n",count);
for(i=1;i<count;i++)
{
for(j=0;j<count-i;j++)
{
if(ct[j]>ct[j+1]){
int tmp=ct[j];
ct[j]=ct[j+1];
ct[j+1]=tmp;
}
}
}
for(i=0; i<count; i++)
{
printf("%d\n",ct[i]);
}
return 0;
}
*/
/*
버블정렬 : 인접한 원소들을 비교해나가면서 정렬
5 1 4 2 3
r1 1 5 4 2 3
1 4 5 2 3
1 4 2 5 3
1 4 2 3(5)
r2 1 4 2 3(5)
1 2 4 3(5)
1 2 3(4 5)
r3 1 2(3 4 5)
r4 1(2 3 4 5)
1 ~n n개
for(i=1;i<n;i++)
{
for(j=1;j<=n-i;j++)
{
if(a[j]>a[j+1])
{
int tmp = a[j];
a[j]=a[j+1];
a[j+1]=a[j];
}
}
}
*/
#include<stdio.h>
int queue[1000000][2]={};
int front=0,rear=0,k,pi,pj;
int ar[1000][1000]={}
void push(int n,int m)
{
int i;
if(ar[n][m]!=0||n<=0||m<=0||n>k||m>k) return;
rear++;
queue[rear-1][0]=n;
queue[rear-1][1]=m;
ar[n][m]=1;
if(rear==1000000)
{
for(i=front; i<rear; i++)
{
queue[i-front][0]=queue[i][0];
queue[i-front][1]=queue[i][1];
}
rear-=front;
front=0;
}
}
void pop()
{
int i;
if(front==0&&rear==0) return;
pi=queue[front][0];
pj=queue[front][1];
front++;
if(rear==1000000)
{
for(i=front; i<rear; i++)
{
queue[i-front][0]=queue[i][0];
queue[i-front][1]=queue[i][1];
}
rear-=front;
front=0;
}
}
int main()
{
int a,b,c,d;
scanf("%d",&k);
scanf("%d %d",&a,&b);
scanf("%d %d",&c,&d);
}