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