import java.util.*

fun main(args: Array<String>) {
    val sc = Scanner(System.`in`)
    val K = sc.nextInt()

    val lunluns = mutableListOf(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L)
    var newLunluns = lunluns

    while (lunluns.size < K) {
        var nextLunLuns = mutableListOf<Long>()
        for (lunlun in newLunluns) {
            val last = lunlun % 10
            if (last == 0L) {
                nextLunLuns.add(lunlun * 10 + 0)
                nextLunLuns.add(lunlun * 10 + 1)
            } else if (last == 9L) {
                nextLunLuns.add(lunlun * 10 + 8)
                nextLunLuns.add(lunlun * 10 + 9)
            } else {
                nextLunLuns.add(lunlun * 10 + last - 1)
                nextLunLuns.add(lunlun * 10 + last)
                nextLunLuns.add(lunlun * 10 + last + 1)
            }
        }
        newLunluns = nextLunLuns
        lunluns.addAll(nextLunLuns)
    }
    println(lunluns[K - 1])
}
