using namespace std;
main()
{
char c[1000][1000],o[1000][1000];
int r,l,t,i,k,a,b;
cin>>l>>r>>t;
for(i=0;i<r;i++)
cin>>c[i];
for(;t>1;t--)
{
for(i=0;i<r;i++)
for(k=0;k<l;k++)
o[i][k]=0;
for(i=0;i<r;i++)
for(k=0;k<l;k++)
if(c[i][k]=='1')
for(a=i-1;a<=i+1;a++)
{
if(a<0||a>=r)
continue;
for(b=k-1;b<=k+1;b++)
{
if(b<0||b>=l||(a==i&&b==k))
continue;
o[a][b]++;
}
}
for(i=0;i<r;i++)
for(k=0;k<l;k++)
if(c[i][k]=='1')
{
if(o[i][k]<2||o[i][k]>3)
c[i][k]='0';
}
else
if(o[i][k]==3)
c[i][k]='1';
}
for(i=0;i<r;i++)
cout<<c[i]<<endl;
}
#include<iostream>
using namespace std;
int d[55][55][55][55],i,j,k,l,m,n,map[200][200];
main()
{
cin>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
cin>>map[i][j];
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
for(k=1;k<=m;k++)
for(l=1;l<=n;l++)
{
if(j==l||i==k)
continue;
d[i][j][k][l]=map[i][j]+map[k][l]+max(max(d[i-1][j][k-1][l],d[i-1][j][k][l-1]),max(d[i][j-1][k-1][l],d[i][j-1][k][l-1]));
}
cout<<max(d[m-1][n][m][n-1],d[m][n-1][m-1][n])+map[m][n];
}