#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")