#include<bits/stdc++.h>
using namespace std;
int a[11][11],nex,ney,t;
bool h[11][11],l[11][11],g[11][11];
void dfs(int x,int y)
{
if(y==9) nex=x+1,ney=1;
else nex=x,ney=y+1;
if(a[x][y])
{
if(x!=9||y!=9)dfs(nex,ney);
else
{
for(int i=1;i<=9;i++)
{
for(int j=1;j<=9;j++)printf("%d ",a[i][j]);
printf("\n");
}
exit(0);
}
}
else
{
for(int i=1;i<=9;i++)
{
if((!h[x][i])&&(!l[y][i])&&(!g[(x-1)/3*3+(y-1)/3+1][i]))
{
a[x][y]=i;
h[x][i]=1;
l[y][i]=1;
g[(x-1)/3*3+(y-1)/3+1][i]=1;
if(x!=9||y!=9)dfs(nex,ney);
else
{
for(int k=1;k<=9;k++)
{
for(int j=1;j<=9;j++)printf("%d ",a[k][j]);
printf("\n");
}
exit(0);
}
h[x][i]=0;
l[y][i]=0;
g[(x-1)/3*3+(y-1)/3+1][i]=0;
a[x][y]=0;
}
}
}
return ;
}
int main()
{
for(int i=1;i<=9;i++)
{
for(int j=1;j<=9;j++)
{
scanf("%d",&t);
if(!t) continue;
h[i][t]=1;
l[j][t]=1;
g[(i-1)/3*3+(j-1)/3+1][t]=1;
a[i][j]=t;
}
}
printf("\n");
dfs(1,1);
return 0;
}