#include <bits/stdc++.h>
using namespace std;
vector<long long> v;
void fn(long long pos, long long n, long long sum) {
  if (pos == 15) {
    if (sum == 10) v.push_back(n);
    return;
  }
  if (v.size() == 10000) return;
  for (long long i = 0; i <= 9; i++) {
    fn(pos + 1, 10 * n + i, sum + i);
  }
}
int main() {
  int t, tc = 0;
  fn(0, 0, 0);
  long long a;
  while (cin >> a) cout << v[a - 1] << endl;
  return 0;
}

### Prompt

Please provide a CPP coded solution to the problem described below:

We consider a positive integer perfect, if and only if the sum of its digits is exactly 10. Given a positive integer k, your task is to find the k-th smallest perfect positive integer.

Input

A single line with a positive integer k (1 ≤ k ≤ 10 000).

Output

A single number, denoting the k-th smallest perfect integer.

Examples

Input

1


Output

19


Input

2


Output

28

Note

The first perfect integer is 19 and the second one is 28.

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
vector<long long> v;
void fn(long long pos, long long n, long long sum) {
  if (pos == 15) {
    if (sum == 10) v.push_back(n);
    return;
  }
  if (v.size() == 10000) return;
  for (long long i = 0; i <= 9; i++) {
    fn(pos + 1, 10 * n + i, sum + i);
  }
}
int main() {
  int t, tc = 0;
  fn(0, 0, 0);
  long long a;
  while (cin >> a) cout << v[a - 1] << endl;
  return 0;
}

```