#define MAXN 20
#define MAXM 20
using namespace std;
int n,m;
int a[MAXN][MAXM],best_sol[MAXN][MAXM],best_area=0;
int main (void){
cin>>n>>m;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
cin>>a[i][j],best_sol[i][j]=a[i][j];
for (int x1=0;x1<n;x1++)
for (int y1=0;y1<m;y1++)
for (int x2=x1;x2<n;x2++)
for (int y2=y1;y2<m;y2++){
int ans=0;
bool maintain=false;
for (int i=x1;i<=x2;i++)
if (!maintain)
for (int j=y1;j<=y2;j++){
if (a[i][j]==1){
maintain=true;
break;
}
ans++;
}
if (!maintain&&ans>best_area){
best_area=ans;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++){
if (a[i][j]==1)
best_sol[i][j]=1;
else best_sol[i][j]=((i>=x1&&i<=x2)&&(j>=y1&&j<=y2))?2:0;
}
}
}
for (int i=0;i<n;i++){
for (int j=0;j<m;j++)
cout<<best_sol[i][j]<<’ ’;
cout<<endl;
}
return 0;
}
/*
input:
3 2
0 0
1 0
0 0
output:
0 2
1 2
0 2
*/
#define MAXN 20
#define MAXM 20
using namespace std;
int n,m;
int a[MAXN][MAXM],best_sol[MAXN][MAXM],best_area=0;
int main (void){
cin>>n>>m;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
cin>>a[i][j],best_sol[i][j]=a[i][j];
for (int x1=0;x1<n;x1++)
for (int y1=0;y1<m;y1++)
for (int x2=x1;x2<n;x2++)
for (int y2=y1;y2<m;y2++){
int ans=0;
bool maintain=false;
for (int i=x1;i<=x2;i++)
if (!maintain)
for (int j=y1;j<=y2;j++){
if (a[i][j]==1){
maintain=true;
break;
}
ans++;
}
if (!maintain&&ans>best_area){
best_area=ans;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++){
if (a[i][j]==1)
best_sol[i][j]=1;
else best_sol[i][j]=((i>=x1&&i<=x2)&&(j>=y1&&j<=y2))?2:0;
}
}
}
for (int i=0;i<n;i++){
for (int j=0;j<m;j++){
cout<<best_sol[i][j];
if (j!=m-1) cout<<’ ’;
}
cout<<endl;
}
return 0;
}
/*
input:
3 2
0 0
1 0
0 0
output:
0 2
1 2
0 2
*/