#include <stdio.h>
#define N 20
int a[N];
int col[N], dg[N], udg[N];
int n;
static int m = 1;
void Dfs(int u) {
if (u == 8) {
if(m == n){
for (int i = 0; i < u; i ++) {
//a[i]从0开始,所以要加一,代表实际的第i列
printf("%d",a[i] + 1);
}
printf("\n");
}
//当前排列不是第n个,则继续寻找下一个
m += 1;
return;
}
for (int i = 0; i < 8; i ++) {
//所在列,主对角线,副对角线是否有其他皇后
if (!col[i] && !dg[u + i] && !udg[u - i + 8]) {
a[u] = i;
col[i] = 1;
dg[u + i] = 1;
udg[u - i + 8] = 1;
Dfs(u + 1);
col[i] = 0;
dg[u + i] = 0;
udg[u - i + 8] = 0;
}
}
}
int main() {
while (scanf("%d", &n) != EOF) { // 注意 while 处理多个 case
// 64 位输出请用 printf("%lld") to
Dfs(0);
}
return 0;
}