#include<bits/stdc++.h> using namespace std; int a[10][10],row[10][10]={0},col[10][10]={0},c[3][3][9]={0}; void dfs(int x,int y){ if(x<10&&y==10){ x++;y=1; } if(x==10){ 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 k=1;k<=9;k++){ if(!row[x][k]&&!col[y][k]&&!c[(x-1)/3][(y-1)/3][k]){ row[x][k]=col[y][k]=c[(x-1)/3][(y-1)/3][k]=1; a[x][y]=k; dfs(x,y+1); a[x][y]=0; row[x][k]=col[y][k]=c[(x-1)/3][(y-1)/3][k]=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]!=0) { int t=a[i][j]; row[i][t]=col[j][t]=c[(i-1)/3][(j-1)/3][t]=1; } } } dfs(1,1); }