#include<cstdio>
#include<iostream>
#define M 10
using namespace std;
int map[M][M],f[M][M],vish[M][M],visl[M][M],visg[4][4][M],flag;
void init(int x,int y,int v)
{
vish[x][v]=1;
visl[y][v]=1;
visg[(x+2)/3][(y+2)/3][v]=1;
}
void init2(int x,int y,int v)
{
vish[x][v]=0;
visl[y][v]=0;
visg[(x+2)/3][(y+2)/3][v]=0;
}
void dfs(int x,int y)
{
if(flag)return;
if(y<1)
{
y=9;
x--;
}
if(x==0)
{
for(int i=1;i<=9;i++)
{
for(int j=1;j<=9;j++)
printf("%d ",map[i][j]);
printf("\n");
}
flag=1;
return;
}
if(!f[x][y])
{
for(int i=1;i<=9;i++)
{
if(!vish[x][i]&&!visl[y][i]&&!visg[(x+2)/3][(y+2)/3][i])
{
map[x][y]=i;
init(x,y,i);
dfs(x,y-1);
map[x][y]=0;
init2(x,y,i);
}
}
}
else dfs(x,y-1);
}
int main()
{
freopen("jh.in","r",stdin);
for(int i=1;i<=9;i++)
for(int j=1;j<=9;j++)
{
scanf("%d",&map[i][j]);
if(map[i][j]) f[i][j]=1;
init(i,j,map[i][j]);
}
dfs(9,9);
return 0;
}