#include<stdio.h>
#include<iostream>
int main()
{
int A,v,w,n,m,c=0;
int y1[82],y2[82],y3[82],x[243];
int b[83];
b[0]=0;
b[82]=0;
//int a[83]={0,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,0};
int a[83]={0,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,0};
for(v=0;v<3;v++){
for(w=0;w<3;w++){
for(n=0;n<3;n++){
for(m=0;m<3;m++){
x[c]=0;
x[c+81]=0;
x[c+162]=0;
c++;
y1[c]=27*v+9*w-1;
y2[c]=27*n+9*m+80;
y3[c]=27*v+9*n+161;
}
}
}
}
for(c=1;c<82;c++){
A=a[c];
b[c]=0;
if(A) {
b[c]=1;
x[y1[c]+A]=1;
x[y2[c]+A]=1;
x[y3[c]+A]=1;
}
}
c=1;
while(c){
while(b[c]){c++;}
if(c<82){
A=a[c];
if(A) {
x[y1[c]+A]=0;
x[y2[c]+A]=0;
x[y3[c]+A]=0;
}
while(A<9) {
A++;
if(x[y1[c]+A]){continue;}
if(x[y2[c]+A]){continue;}
if(x[y3[c]+A]){continue;}
x[y1[c]+A]=1;
x[y2[c]+A]=1;
x[y3[c]+A]=1;
a[c]=A;
c++;
A=10;
}
}
else {
A=0;
for(v=0;v<9;v++){
for(w=0;w<9;w++){printf(" %d",a[9*v+w+1]);}
printf("\n");
}
system("pause");
}
if(A<10){
a[c]=0;
c--;
while(b[c]){c--;}
}
}
return 0;
}