#include <bits/stdc++.h>
#include<math.h>
#include<queue>
#include<cstdio>
#include<set>
#include<map>
using namespace std;
using ll = long long;
int main(){
    ll K;
    cin >> K;
    vector<ll> A(10,0);
    ll order=0;
    for(int j=1; j<=9; j++){
        order++;
        if(order == K){
            A.at(9)=j;
        }
    }
    for(int i=1; i<=9; i++){
                                        for(int j=max(0,i-1); j<=min(9,i+1); j++){
                                            order++;
                                            if(order == K){
                                                
                                                A.at(8)=i;
                                                A.at(9)=j;
                                            }
                                        }
                                    }
    for(int h=1; h<=9; h++){
                                    for(int i=max(0,h-1); i<=min(9,h+1); i++){
                                        for(int j=max(0,i-1); j<=min(9,i+1); j++){
                                            order++;
                                            if(order == K){
                                                
                                                A.at(7)=h;
                                                A.at(8)=i;
                                                A.at(9)=j;
                                            }
                                        }
                                    }
                                }
    for(int g=1; g<=9; g++){
                                for(int h=max(0,g-1); h<=min(9,g+1); h++){
                                    for(int i=max(0,h-1); i<=min(9,h+1); i++){
                                        for(int j=max(0,i-1); j<=min(9,i+1); j++){
                                            order++;
                                            if(order == K){
                                                
                                                A.at(6)=g;
                                                A.at(7)=h;
                                                A.at(8)=i;
                                                A.at(9)=j;
                                            }
                                        }
                                    }
                                }
                            }
    for(int f=1; f<=9; f++){
                            for(int g=max(0,f-1); g<=min(9,f+1); g++){
                                for(int h=max(0,g-1); h<=min(9,g+1); h++){
                                    for(int i=max(0,h-1); i<=min(9,h+1); i++){
                                        for(int j=max(0,i-1); j<=min(9,i+1); j++){
                                            order++;
                                            if(order == K){
                                                
                                                A.at(5)=f;
                                                A.at(6)=g;
                                                A.at(7)=h;
                                                A.at(8)=i;
                                                A.at(9)=j;
                                            }
                                        }
                                    }
                                }
                            }
    }
    for(int e=1; e<=9; e++){
                        for(int f=max(0,e-1); f<=min(9,e+1); f++){
                            for(int g=max(0,f-1); g<=min(9,f+1); g++){
                                for(int h=max(0,g-1); h<=min(9,g+1); h++){
                                    for(int i=max(0,h-1); i<=min(9,h+1); i++){
                                        for(int j=max(0,i-1); j<=min(9,i+1); j++){
                                            order++;
                                            if(order == K){
                                               
                                                A.at(4)=e;
                                                A.at(5)=f;
                                                A.at(6)=g;
                                                A.at(7)=h;
                                                A.at(8)=i;
                                                A.at(9)=j;
                                            }
                                        }
                                    }
                                }
                            }
                        }
    }
    for(int d=1; d<=9; d++){
                    for(int e=max(0,d-1); e<=min(9,d+1); e++){
                        for(int f=max(0,e-1); f<=min(9,e+1); f++){
                            for(int g=max(0,f-1); g<=min(9,f+1); g++){
                                for(int h=max(0,g-1); h<=min(9,g+1); h++){
                                    for(int i=max(0,h-1); i<=min(9,h+1); i++){
                                        for(int j=max(0,i-1); j<=min(9,i+1); j++){
                                            order++;
                                            if(order == K){
                                                
                                                A.at(3)=d;
                                                A.at(4)=e;
                                                A.at(5)=f;
                                                A.at(6)=g;
                                                A.at(7)=h;
                                                A.at(8)=i;
                                                A.at(9)=j;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
    for(int c=1; c<=9; c++){
                for(int d=max(0,c-1); d<=min(9,c+1); d++){
                    for(int e=max(0,d-1); e<=min(9,d+1); e++){
                        for(int f=max(0,e-1); f<=min(9,e+1); f++){
                            for(int g=max(0,f-1); g<=min(9,f+1); g++){
                                for(int h=max(0,g-1); h<=min(9,g+1); h++){
                                    for(int i=max(0,h-1); i<=min(9,h+1); i++){
                                        for(int j=max(0,i-1); j<=min(9,i+1); j++){
                                            order++;
                                            if(order == K){
                                                
                                                A.at(2)=c;
                                                A.at(3)=d;
                                                A.at(4)=e;
                                                A.at(5)=f;
                                                A.at(6)=g;
                                                A.at(7)=h;
                                                A.at(8)=i;
                                                A.at(9)=j;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
    for(int b=1; b<=9; b++){
            for(int c=max(0,b-1); c<=min(9,b+1); c++){
                for(int d=max(0,c-1); d<=min(9,c+1); d++){
                    for(int e=max(0,d-1); e<=min(9,d+1); e++){
                        for(int f=max(0,e-1); f<=min(9,e+1); f++){
                            for(int g=max(0,f-1); g<=min(9,f+1); g++){
                                for(int h=max(0,g-1); h<=min(9,g+1); h++){
                                    for(int i=max(0,h-1); i<=min(9,h+1); i++){
                                        for(int j=max(0,i-1); j<=min(9,i+1); j++){
                                            order++;
                                            if(order == K){
                                                A.at(1)=b;
                                                A.at(2)=c;
                                                A.at(3)=d;
                                                A.at(4)=e;
                                                A.at(5)=f;
                                                A.at(6)=g;
                                                A.at(7)=h;
                                                A.at(8)=i;
                                                A.at(9)=j;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }      
    for(int a=1; a<=4; a++){
        for(int b=max(0,a-1); b<=min(9,a+1); b++){
            for(int c=max(0,b-1); c<=min(9,b+1); c++){
                for(int d=max(0,c-1); d<=min(9,c+1); d++){
                    for(int e=max(0,d-1); e<=min(9,d+1); e++){
                        for(int f=max(0,e-1); f<=min(9,e+1); f++){
                            for(int g=max(0,f-1); g<=min(9,f+1); g++){
                                for(int h=max(0,g-1); h<=min(9,g+1); h++){
                                    for(int i=max(0,h-1); i<=min(9,h+1); i++){
                                        for(int j=max(0,i-1); j<=min(9,i+1); j++){
                                            order++;
                                            if(order == K){
                                                A.at(0)=a;
                                                A.at(1)=b;
                                                A.at(2)=c;
                                                A.at(3)=d;
                                                A.at(4)=e;
                                                A.at(5)=f;
                                                A.at(6)=g;
                                                A.at(7)=h;
                                                A.at(8)=i;
                                                A.at(9)=j;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    ll c=0;
    for(int i=0; i<10; i++){
        c += A.at(i)*pow(10,9-i);
    }
    cout << c << endl;
    return 0;
}

Measured memory_bytes: 256