#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
vector<string>res;
int Q[8][8]={0};
bool isValid(int row,int col){
    int i,j;
    for(i=0;i<8;i++){
        if(Q[i][col])return false;
    }
    for(i=row,j=col;i>=0&&j>=0;i--,j--){
        if(Q[i][j])return false;
    }
    for(i=row,j=col;i>=0&&j<8;i--,j++){
        if(Q[i][j])return false;
    }
    return true;
}
void backtracking(int row,string temp){
    if(temp.length()==8){
        res.push_back(temp);
        return;
    }
    for(int i=0;i<8;i++){
        if(isValid(row, i)){
            Q[row][i]=1;
            char c=i+1+'0';
            temp.push_back(c);
            backtracking(row+1,temp);
            Q[row][i]=0;
            temp.pop_back();//这一步很重要(回退)
        }
    }
}
int main() {
    int  b;
    string temp="";
    backtracking(0, temp);
    sort(res.begin(),res.end());
    while (cin  >> b) { // 注意 while 处理多个 case
        cout << res[b-1] << endl;
    }
}
// 64 位输出请用 printf("%lld")