description: 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
solution: #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;
  }
  