#include <stdio.h>
int main()
{
int A,Y1,Y2,Y3;
int v,w,n,m,c,z;
int y1[81],y2[81],y3[81],x[243];
int b[82];
//int a[81]={0,0,0,0,7,6,0,0,0,1,0,0,0,3,8,7,4,0,0,7,0,0,0,0,0,0,0,0,0,4,0,6,0,5,0,1,0,6,7,0,0,0,2,8,0,3,0,1,0,4,0,6,0,0,0,0,0,0,0,0,0,1,0,0,2,5,6,1,0,0,0,9,0,0,0,9,8,0,0,0,0};
int a[81]={5,0,2,0,0,0,0,0,0,0,0,0,0,6,0,9,0,0,0,0,0,0,0,0,0,0,0,0,4,1,0,0,7,0,0,0,0,0,0,5,0,0,0,6,0,0,0,5,0,0,2,0,0,0,0,9,7,0,8,5,0,0,0,0,0,0,0,0,0,0,3,5,0,5,4,0,0,0,0,9,6};
for(v=0;v<3;v++){
for(w=0;w<3;w++){
for(n=0;n<3;n++){
for(m=0;m<3;m++){
y1[c]=27*v+9*w-1;
y2[c]=27*n+9*m+80;
y3[c]=27*v+9*n+161;
x[c]=0;
x[c+81]=0;
x[c+162]=0;
c++;
}
}
}
}
for(c=0;c<81;c++){
A=a[c];
b[c]=0;
if(A>0){
b[c]=1;
x[y1[c]+A]=1;
x[y2[c]+A]=1;
x[y3[c]+A]=1;
}
}
c=0;
while(c>-1){
while(b[c]>0){c++;}
if(c>80){
for(v=0;v<9;v++){
for(w=0;w<9;w++){
printf(" %d",a[9*v+w]);
}
printf("\n");
}
return 0;
}
A=a[c];
Y1=y1[c]+A;
Y2=y2[c]+A;
Y3=y3[c]+A;
if(A>0){
x[Y1]=0;
x[Y2]=0;
x[Y3]=0;
}
while(A<9){
A++;
Y1++;
Y2++;
Y3++;
if(x[Y1]>0){continue;}
if(x[Y2]>0){continue;}
if(x[Y3]>0){continue;}
x[Y1] = 1;
x[Y2] = 1;
x[Y3] = 1;
a[c] = A;
c++;
A=10;
}
if(A<10){
a[c]=0;
c--;
while(b[c]==1){c--;}
}
}
}