#include <bits/stdc++.h>
using namespace std;
const int N = 50 + 7;
const int M = 1e5 + 7;
const long long mod = 998244353;
double eps = 1e-8;
inline long long read() {
  long long X = 0;
  bool flag = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') flag = 0;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    X = (X << 1) + (X << 3) + ch - '0';
    ch = getchar();
  }
  if (flag) return X;
  return ~(X - 1);
}
long long m, n, k;
long long a[N];
long long ans;
vector<int> vt;
bool ok(int x) {
  if (x % 3 == 0 || x % 10 == 3) return 0;
  return 1;
}
void pre() {
  int nw = 1;
  while (vt.size() < 1100) {
    if (ok(nw)) vt.push_back(nw);
    nw++;
  }
}
void solvve() {
  n = read();
  cout << vt[n - 1] << endl;
}
int main() {
  pre();
  int T;
  T = read();
  while (T--) {
    solvve();
  }
  return 0;
}

### Prompt

Please formulate a CPP solution to the following problem:

Polycarp doesn't like integers that are divisible by 3 or end with the digit 3 in their decimal representation. Integers that meet both conditions are disliked by Polycarp, too.

Polycarp starts to write out the positive (greater than 0) integers which he likes: 1, 2, 4, 5, 7, 8, 10, 11, 14, 16, .... Output the k-th element of this sequence (the elements are numbered from 1).

Input

The first line contains one integer t (1 ≤ t ≤ 100) — the number of test cases. Then t test cases follow.

Each test case consists of one line containing one integer k (1 ≤ k ≤ 1000).

Output

For each test case, output in a separate line one integer x — the k-th element of the sequence that was written out by Polycarp.

Example

Input


10
1
2
3
4
5
6
7
8
9
1000


Output


1
2
4
5
7
8
10
11
14
1666

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
const int N = 50 + 7;
const int M = 1e5 + 7;
const long long mod = 998244353;
double eps = 1e-8;
inline long long read() {
  long long X = 0;
  bool flag = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') flag = 0;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    X = (X << 1) + (X << 3) + ch - '0';
    ch = getchar();
  }
  if (flag) return X;
  return ~(X - 1);
}
long long m, n, k;
long long a[N];
long long ans;
vector<int> vt;
bool ok(int x) {
  if (x % 3 == 0 || x % 10 == 3) return 0;
  return 1;
}
void pre() {
  int nw = 1;
  while (vt.size() < 1100) {
    if (ok(nw)) vt.push_back(nw);
    nw++;
  }
}
void solvve() {
  n = read();
  cout << vt[n - 1] << endl;
}
int main() {
  pre();
  int T;
  T = read();
  while (T--) {
    solvve();
  }
  return 0;
}

```