import std.stdio;
import std.conv;
import std.string;
import std.algorithm;
import std.math;

long nextlnln(long x) {
  if(x<10) return x+1;
  bool carry = false;
  int ten = (x/10)%10;
  int one = (x+1) % 10;
  if(abs(ten - one) > 1) carry = true;
  if(carry) {
    long y = nextlnln(x/10);
    int z = y%10;
    return y*10 + (z>0 ? z-1 : 0);
  }
  else {
    return x+1;
  }
}

void main() {
  int k;
  long lnln = 0;
  readf("%d\n", &k);
  for(int i=0; i<k; i++) {
    lnln = nextlnln(lnln);
  }
  writeln(lnln);
}
