#include<iostream>
#include<vector>
using namespace std;
#define Min(x,y) x<y?x:y;
#define Max(x,y) x>y?x:y;
int map[10001];
int reverseNum(int n) {
int res = 0;
while (n > 0) {
res *= 10;
res += n % 10;
n /= 10;
}
return res;
}
void init() {
int t, i,rev,max,min;
int N = 20;
for (i = 1; i <= 11; i++) {
map[i] = i;
}
for (t = 11, i = 12; t < N; i++) {
rev = reverseNum(i);
min = Min(rev, i);
max = Max(rev, i);
if (max % min == 0) {
map[++t] = i;
}
}
}
int main() {
int N, t, i, rev,min,max;
init();
vector<int>vector;
while (cin >> N) {
vector.push_back(map[N]);
}
for (int i = 0; i <vector.size(); i++)
{
cout << vector[i] << endl;
}
}