//自己写了一个数独,刚好和poj的2676
#include<stdio.h>
char ch[10];
int sudo[9][9];
int judge(int p)
{
int i,j,x,y;
x=p/9;
y=p%9;
for(i=x/3*3;i<x/3*3+3;i++)
{
for(j=y/3*3;j<y/3*3+3;j++)
{
if(i==x&&j==y)
continue;
if(sudo[i][j]==sudo[x][y])
return 0;
}
}
for(i=0;i<9;i++)
{
if(i==y)
continue;
if(sudo[x][i]==sudo[x][y])
return 0;
}
for(i=0;i<9;i++)
{
if(i==x)
continue;
if(sudo[i][y]==sudo[x][y])
return 0;
}
return 1;
}
int dfs(int p)
{
int i;
if(p==-1)
return 1;
if(sudo[p/9][p%9]!=0)
return dfs(p-1);
else
{
for(i=1;i<=9;i++)
{
sudo[p/9][p%9]=i;
if(judge(p))
{
if(dfs(p-1))
return 1;
}
sudo[p/9][p%9]=0;
}
}
return 0;
}
int main()
{
int i,j;
while(1)
{
for(i=0;i<9;i++)
{
scanf("%s",ch);
for(j=0;j<9;j++)
sudo[i][j]=ch[j]-'0';
}
printf("/n/n");
dfs(80);
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
printf("%d",sudo[i][j]);
}
printf("/n");
}
printf("/n/n");
}
return 0;
}