#include<bits/stdc++.h>
using namespace std;
const int n=9;
int a[10][10];
int id[10][10]{{},
{0,1,1,1,2,2,2,3,3,3},
{0,1,1,1,2,2,2,3,3,3},
{0,1,1,1,2,2,2,3,3,3},
{0,4,4,4,5,5,5,6,6,6},
{0,4,4,4,5,5,5,6,6,6},
{0,4,4,4,5,5,5,6,6,6},
{0,7,7,7,8,8,8,9,9,9},
{0,7,7,7,8,8,8,9,9,9},
{0,7,7,7,8,8,8,9,9,9}
};
bool hang[10][10],lie[10][10],gong[10][10];
void dfs(int x,int y){
if(y==10) x++,y=1;
if(x>9){
for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++) cout<<a[i][j]<<' ';
cout<<endl;
}
exit(0);
}
if(a[x][y]) dfs(x,y+1);
else{
for(int i=1;i<=9;i++){
if(hang[x][i]||lie[y][i]||gong[id[x][y]][i]) continue;
a[x][y]=i;
hang[x][i]=lie[y][i]=gong[id[x][y]][i]=true;
dfs(x,y+1);
hang[x][i]=lie[y][i]=gong[id[x][y]][i]=false;
a[x][y]=0;
}
}
}
int main(){
for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++){
cin>>a[i][j];
if(a[i][j]) hang[i][a[i][j]]=lie[j][a[i][j]]=hang[id[i][j]][a[i][j]];
}
}
dfs(1,1);
return 0;
}
求调