#include<stdio.h>
short int masu[100]={},fin;
void next(int y,int x);
int main(){
int x, y, i;
for(y=0;y<9;y++) //読み込み
for(x=0;x<9;x++)
scanf(" %d",&masu[y*10+x]);
x=0,y=0;
next(y,x);
for(y=0;y<9;y++){
printf("\n");
for(x=0;x<9;x++)
printf("%d ",masu[y*10+x]);
}
return 0;
}
void next(int y,int x){
int num=y*10+x, i, m, n, check;
if(num==90)
fin = 1;
else if(masu[num]){
if(x==8)
next(y+1,0);
else if(x!=8)next(y,x+1);
}
else if(!masu[num])
for(i=1;i<10;i++){
check=0;
if(fin)
break;
for(m=0;m<9;m++)
if(masu[y*10+m]==i)
check=1;
else if(masu[m*10+x]==i)
check=1;
for(m=0;m<3;m++){
for(n=0;n<3;n++)
if(num==m*10+n)
for(m=0;m<3;m++)
for(n=0;n<3;n++)
if(masu[m*10+n]==i)
check=1;
}
for(m=0;m<3;m++){
for(n=3;n<6;n++)
if(num==m*10+n)
for(m=0;m<3;m++)
for(n=3;n<6;n++)
if(masu[m*10+n]==i)
check=1;
}
for(m=0;m<3;m++){
for(n=6;n<9;n++)
if(num==m*10+n)
for(m=0;m<3;m++)
for(n=6;n<9;n++)
if(masu[m*10+n]==i)
check=1;
}
for(m=3;m<6;m++){
for(n=0;n<3;n++)
if(num==m*10+n)
for(m=3;m<6;m++)
for(n=0;n<3;n++)
if(masu[m*10+n]==i)
check=1;
}
for(m=3;m<6;m++){
for(n=3;n<6;n++)
if(num==m*10+n)
for(m=3;m<6;m++)
for(n=3;n<6;n++)
if(masu[m*10+n]==i)
check=1;
}
for(m=3;m<6;m++){
for(n=6;n<9;n++)
if(num==m*10+n)
for(m=3;m<6;m++)
for(n=6;n<9;n++)
if(masu[m*10+n]==i)
check=1;
}
for(m=6;m<9;m++){
for(n=0;n<3;n++)
if(num==m*10+n)
for(m=6;m<9;m++)
for(n=0;n<3;n++)
if(masu[m*10+n]==i)
check=1;
}
for(m=6;m<9;m++){
for(n=3;n<6;n++)
if(num==m*10+n)
for(m=6;m<9;m++)
for(n=3;n<6;n++)
if(masu[m*10+n]==i)
check=1;
}
for(m=6;m<9;m++){
for(n=6;n<9;n++)
if(num==m*10+n)
for(m=6;m<9;m++)
for(n=6;n<9;n++)
if(masu[m*10+n]==i)
check=1;
}
if(!check){
masu[num]=i;
if(x==8)
next(y+1,0);
else if(x!=8)next(y,x+1);
}
}
}