#include<stdio.h>
int map[4][4]={0,0,0,1,
	       0,0,1,1,
	       0,0,1,0,
	       0,1,0,0};
int mx[4]={0,0,1,-1};
int my[4]={1,-1,0,0};
typedef struct node
{
	int x;
	int y;}node;
node dui[1000];
int tou=0;
int wei=1;
void change()
{
	int nx;
	int ny;
	dui[tou].x=0;
	dui[tou].y=3;
	map[0][3]=2;
	while(tou<wei)
	{
		for(int i=0;i<4;i++)
		{
			nx=dui[tou].x +mx[i];
			ny=dui[tou].y +my[i];
			if(nx>=0&&nx<4&&ny>=0&&ny<4&&map[nx][ny]==1)
			{	map[nx][ny]=2;
				dui[wei].x =nx;
				dui[wei].y =ny;
				wei++;
				
			}
		}
	tou++;	
	}
	
}

int main()
{	change();
for(int i=0;i<4;i++)
{
	for(int j=0;j<4;j++)
	{
		printf("%d",map[i][j]);
	}
	printf("\n");
}
return 0;
}