#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <vector>
using namespace std;
bool col[10];
bool flag1[40];
bool flag2[40];
int v[10];
long long answ[100];
int ans=0;
int k=0;
int n;
void dfs(int cnt)
{
if(cnt > 8)
{
// v.push_back(s);
ans++;
answ[ans]=0;
if(ans==n)
{
for(int i=0;i<8;i++)
{
cout<<v[i];
}
cout<<endl;
}
return ;
}
for(int i=1;i<=8;i++)
{
if(col[i]==0&&flag1[cnt-i+10]==0&&flag2[cnt+i]==0)
{
col[i]=1;
flag1[cnt-i+10]=1;
flag2[cnt+i]=1;
v[k++]=i;
dfs(cnt+1);
col[i]=0;
flag1[cnt-i+10]=0;
flag2[cnt+i]=0;
k--;
}
}
}
int main() {
// int n;
cin>>n;
dfs(1);
// cout<<answ[n]<<endl;
// cout<<v[n-1]<<endl;
}
// 64 位输出请用 printf("%lld")