#include<stdio.h>
#define N 101
#include<math.h>
int main()
{
int a[N][N], b[N][N];
int m, n;
scanf("%d%d",&m,&n);
int j=0;
for(int i=0;j<m;i++) //组建两个相等的数组a, b
{
scanf("%d",&a[j][i]);
b[j][i] = a[j][i];
if(i%n==(n-1))
{
j++;
i=-1;
}
}
double temp;
j=0;
for(int i=0;j<m;i++) //当目标数不位于边缘时,将新值赋给b中元素
{
if(!(i==0||j==0||i==n-1||j==m-1))
temp = (a[j][i]+a[j][i+1]+a[j][i-1]+a[j+1][i]+a[j-1][i])*1.0/5;
if(ceil(temp)-temp<temp-floor(temp)) //取最接近的整数值
temp=ceil(temp);
else
temp=floor(temp);
b[j][i] = temp;
if(i%n==(n-1))
{
j++;
i=-1;
}
}
j=0;
for(int i=0;j<m;i++)
{
printf("%d ",b[j][i]);
if(i%n==(n-1))
{
putchar('\n');
j++;
i=-1;
}
}
return 0;
}