#include <bits/stdc++.h>
using namespace std;
int k;
bool input() {
  if (cin >> k) return true;
  return false;
}
int sum(int n) {
  int res = 0;
  while (n) {
    res += n % 10;
    n /= 10;
  }
  return res;
}
const int size = 10000;
int d[size];
void solve() {
  int dc = 0;
  int a = 10, b = 100;
  while (dc < size) {
    for (int i = a; i < b && dc < size; ++i) {
      if (sum(i) == 10) {
        d[dc++] = i;
      }
    }
    a *= 10;
    b *= 10;
  }
  cout << d[k - 1] << endl;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  while (input()) {
    solve();
  }
  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;
int k;
bool input() {
  if (cin >> k) return true;
  return false;
}
int sum(int n) {
  int res = 0;
  while (n) {
    res += n % 10;
    n /= 10;
  }
  return res;
}
const int size = 10000;
int d[size];
void solve() {
  int dc = 0;
  int a = 10, b = 100;
  while (dc < size) {
    for (int i = a; i < b && dc < size; ++i) {
      if (sum(i) == 10) {
        d[dc++] = i;
      }
    }
    a *= 10;
    b *= 10;
  }
  cout << d[k - 1] << endl;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  while (input()) {
    solve();
  }
  return 0;
}

```