#include <stdio.h>
void f(int i, int n, int *select, bool *isused) {
if(i == n) {
for(int i = 0; i < 9; ++i) {
printf("%d ", select[i]);
}
printf("\n");
return;
} else {
for(int j = 0; j < 9; ++j) {
if(i == 0 || i == n-1) {
if(j == 0 || j == 2 || j == 6 || j == 8) continue;
else if(isused[j] == 0) {
isused[j] = true;
select[i] = j;
f(i+1, n, select, isused);
isused[j] = false;
}
} else {
if(j == select[i-1]-1 || j == select[i-1]+1) continue;
else if(isused[j] == 0) {
isused[j] = true;
select[i] = j;
f(i+1, n, select, isused);
isused[j] = false;
}
}
}
}
}
int main () {
int select[9];
bool isused[9];
f(0, 9, select, isused);
}