#include <iostream>
#include <vector>
using namespace std;
const int N = 20;
//dfs(cur_r,cur_c)
//st_1(8);st_2(8)
//st_3(15);st_4(15)
bool st_1[N],st_2[N];//行列状态
bool st_3[N],st_4[N];//斜边状态
//st_3左向右:j-i+8
//st_4右向左:i+j-1
vector<string> ans;
void dfs(int r,string &a){
if(r>8||r<=0)return;
for(int i=1;i<=8;i++){
if(st_1[r]||st_2[i]||st_3[i-r+8]||st_4[r+i-1]){
continue;
}
if(!st_1[r]&&!st_2[i]&&!st_3[i-r+8]&&!st_4[r+i-1]){
if(r==8){
a.push_back(i+'0');
ans.push_back(a);
a.pop_back();
return;
}else{
a.push_back(i+'0');
st_1[r]=true,st_2[i]=true,st_3[i-r+8]=true,st_4[r+i-1]=true;
dfs(r+1,a);
st_1[r]=false,st_2[i]=false,st_3[i-r+8]=false,st_4[r+i-1]=false;
a.pop_back();
}
}
}
return;
}
int main() {
for(int i=0;i<=N;i++){
st_1[i]=false;
st_2[i]=false;
st_3[i]=false;
st_4[i]=false;
}
string a;
dfs(1,a);
int n;
while(cin>>n){
cout<<ans[n-1]<<endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")