#include<iostream>
#include<iomanip>
#include<string>
#include<cstring>
using namespace std;
int i=0;
int A[9][9]={0};
int fish=0;
int main()
{
void dfs(int i,int j);
void output();
string str;
while(getline(cin,str))
{
i=i%9;
int si=0;
for(int j=0;j<9;j++)
{
A[i][j]=str[si]-'0';
si=si+2;
}
int flag=0;
if(i==8)
{
for(int r=0;r<9;r++)
{
for(int c=0;c<9;c++)
{
if(A[r][c]==0)
{
dfs(r,c);flag=1;break;
}
}
if(flag==1){flag=0;break;}
}
if(fish==1)
{
output();
fish=0;
}
}
i++;
}
return 0;
}
void dfs(int i,int j)
{
bool col(int r,int c,int x);
bool row(int r,int c,int x);
bool block(int r,int c,int x);
for(int x=1;x<=9;x++)
{
A[i][j]=x;
//cout<<"A["<<i<<"]["<<j<<"]="<<x<<endl;
bool Cok=col(i,j,x);
bool Rok=row(i,j,x);
bool Bok=block(i,j,x);
if(Cok && Rok && Bok)
{
int rr=0,cc=0;
int flag=0;
for(rr=0;rr<9;rr++)
{
for(cc=0;cc<9;cc++)
{
if(A[rr][cc]==0)
{
flag=1;break;
}
}
if(flag==1){flag=0;break;}
}
if(rr==9 && cc==9)
{
fish=1;return;
}
dfs(rr,cc);
if(fish==1){return;}
}
A[i][j]=0;
}
}
bool col(int r,int c,int x)
{
for(int i=0;i<9;i++)
{
if(i==r)
{
continue;
}
if(A[i][c]==x)
{
return false;
}
}
return true;
}
bool row(int r,int c,int x)
{
for(int i=0;i<9;i++)
{
if(i==c)
{
continue;
}
if(A[r][i]==x)
{
return false;
}
}
return true;
}
bool block(int r,int c,int x)
{
int i=0,j=0;
switch(r)
{
case 0:case 1:case 2:i=0;break;
case 3:case 4:case 5:i=3;break;
case 6:case 7:case 8:i=6;break;
}
switch(c)
{
case 0:case 1:case 2:j=0;break;
case 3:case 4:case 5:j=3;break;
case 6:case 7:case 8:j=6;break;
}
for(int row=i;row<i+3;row++)
{
for(int col=j;col<j+3;col++)
{
if(row==r && col==c){continue;}
if(A[row][col]==x){return false;}
}
}
return true;
}
void output()
{
for(int i=0;i<9;i++)
{
for(int j=0;j<9;j++)
{
cout<<A[i][j];
if(j!=8){cout<<" ";}
}
cout<<endl;
}
}