/*#include <stdio.h>
int main()
{
// i j j i
/* 1 2 1 2 3 (1,1) -> (2,3)
1 1 2 1 6 4 2 (1,2) -> (1,3)
2 3 4 2 5 3 1 (2,1) -> (2,2)
3 5 6 (2,2) -> (1,2)
int n,m,i,j,a=1;
int arr[105][105];
scanf("%d %d",&n,&m);
for (i=m;i>=1;i--)
{
for (j=n;j>=1;j--)
{
arr[i][j]=a;
a++;
}
}
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
{
if (j%2!=0)
{
printf("%d ",arr[j][i]);
}
else {
printf("%d ",arr[j][n-i+1]);
}
}
printf("\n");
}
return 0;
}*/
/*#include <stdio.h>
int main()
{
int arr[105][105];
int n,m,i,j,a=1;
scanf("%d %d",&n,&m);
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
{
arr[i][j]=a;
a++;
}
}
for (i=n;i>=1;i--)
{
for (j=m;j>=1;j--)
{
if (j%2!=0)
{
printf("%d ",arr[j][i]);
}
else {
printf("%d ",arr[j][n-i+1]);
}
}
printf("\n");
}
return 0;
}
*/
/*#include <stdio.h>
int main()
{
int arr[105][105];
int i,j,n,m,a=1;
scanf("%d %d",&n,&m);
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
{
arr[i][j]=a;
a++;
}
}
for (i=n;i>=1;i--)
{
for (j=m;j>=1;j--)
{
if (j%2==0)
{
printf("%d ",arr[j][i]);
}
else {
printf("%d ",arr[j][n-i+1]);
}
}
printf("\n");
}
return 0;
}
*/
//arr[i-1][j]/arr[i+1][j]/arr[i][j-1]/arr[i][j+1]
//arr[i-1][j-1]/arr[i+1][j-1]/arr[i-1][j+1]/arr[i+1][j+1]
#include <stdio.h> //2차원 배열 2개 사용
int main()
{
int arr[30][30]={},str[30][30]={};
int i,j,a=0,b=0;
for (i=1; i<=25; i++)
{
for (j=1; j<=25; j++)
{
scanf("%d",&arr[i][j]);
}
printf("\n");
}
for (i=1; i<=25; i++)
{
for (j=1; j<=25; j++)
{
str[i][j]=arr[i][j];
if (arr[i][j]==0)
{
if ((arr[i-1][j]+arr[i+1][j]+arr[i][j-1]+arr[i][j+1]+arr[i-1][j-1]+arr[i+1][j-1]+arr[i-1][j+1]+arr[i+1][j+1])==3)
{
arr[i][j]=1;
str[i][j]=arr[i][j];
}
}
}
printf("\n");
}
for (i=1; i<=25; i++)
{
for (j=1; j<=25; j++)
{
str[i][j]=arr[i][j];
if (arr[i][j]==1)
{
if(arr[i-1][j]==1||arr[i+1][j]==1||arr[i][j-1]==1||arr[i][j+1]==1||arr[i-1][j-1]==1||arr[i+1][j-1]==1||arr[i-1][j+1]==1||arr[i+1][j+1]==1)
{
b++;
}
else if (b>=4||b<=1)
{
arr[i][j]=0;
str[i][j]=arr[i][j];
}
else if (b==2||b==3)
{
arr[i][j]=1;
str[i][j]=arr[i][j];
}
}
}
printf("\n");
}
for (i=1; i<=25; i++)
{
for (j=1; j<=25; j++)
{
printf("%d ",str[i][j]);
}
printf("\n");
}
return 0;
}
/*#include <stdio.h>
int main()
{
int arr[30][30],str[30][30];
int i,j,a=0;
for (i=1; i<=25; i++)
{
for (j=1; j<=25; j++)
{
scanf("%d",&arr[i][j]);
}
}
for (i=1; i<=25; i++)
{
for (j=1; j<=25; j++)
{
str[i][j]=arr[i][j];
if (arr[i][j]==0&&(arr[i-1][j]+arr[i+1][j]+arr[i][j-1]+arr[i][j+1]+arr[i-1][j-1]+arr[i+1][j-1]+arr[i-1][j+1]+arr[i+1][j+1])==3)
{
arr[i][j]=1;
str[i][j]=arr[i][j];
}
else if (arr[i][j]==1)
{
if (arr[i-1][j]==1||arr[i+1][j]==1||arr[i][j-1]==1||arr[i][j+1]==1||arr[i-1][j-1]==1||arr[i+1][j-1]==1||arr[i-1][j+1]==1||arr[i+1][j+1]==1)
{
a++;
}
}
else if (a>=4||a<=1)
{
arr[i][j]=0;
str[i][j]=arr[i][j];
}
else if (a==2||a==3)
{
str[i][j]=1;
}
}
}
for (i=1; i<=25; i++)
{
for (j=1; j<=25; j++)
{
printf("%d ",str[i][j]);
}
}
return 0;
}
*/