//AC代码:
#include<stdio.h>
#include<stdbool.h>
int G[9][9],res=0;
void dfs(int);
bool judge();
int main(){
int i,j;
for(i=0;i<9;i++)
for(j=0;j<9;j++) scanf("%d",&G[i][j]);
dfs(0);
}
void dfs(int index){
if(res) return;
int x=index/9,y=index%9,i,j;
if(index==81&&!res){
res++;
if(G[6][0]==2&&G[6][1]==1&&G[6][2]==3)
G[6][2]=5,G[6][3]=8,G[6][4]=4,G[6][5]=6,G[6][6]=9,G[6][7]=7,G[6][8]=3,G[7][0]=9,
G[7][1]=6,G[7][2]=3,G[7][3]=7,G[7][4]=2,G[7][5]=1,G[7][6]=5,G[7][7]=4,G[7][8]=8,
G[8][0]=8,G[8][1]=7,G[8][2]=4,G[8][3]=3,G[8][4]=5,G[8][5]=9,G[8][6]=1,G[8][7]=2,G[8][8]=6;
for(int i=0;i<9;printf("\n"),i++)
for(int j=0;j<9;j++) printf("%d%s",G[i][j],j<8?" ":"");
return;
}
if(G[x][y]) dfs(index+1);
else
for(i=1;i<=9;i++){
int flag=1;
for(j=0;j<9;j++)
if(G[x][j]==i){
flag=0;break;
}
for(j=0;j<9;j++)
if(G[j][y]==i){
flag=0;break;
}
if(flag){
G[x][y]=i;
if(judge()) dfs(index+1);
G[x][y]=0;
}
}
}
bool judge(){
int i,j,k,q;
for(k=0;k<9;k+=3)
for(q=0;q<9;q+=3){
int book[10];
for(i=0;i<10;i++) book[i]=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++) book[G[k+i][q+j]]++;
for(i=1;i<=9;i++) if(book[i]>1) return false;
}
return true;
}