#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<long long> result;
void dfs(long long number, int newNumber)
{
for (int i = 0; i < newNumber; i++)
{
result.push_back(number * 10 + i);
dfs(number * 10 + i, i);
}
}
int main()
{
int n;
cin >> n;
for (int i = 0; i < 10; i++)
{
result.push_back(i);
dfs(i, i);
}
if (n > result.size())
{
cout << -1 << endl;
}
else
{
sort(result.begin(), result.end());
cout << result[n - 1] << endl;
}
}