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