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;
  inline namespace FastIO {
  const long long BSZ = 1 << 15;
  char ibuf[BSZ];
  long long ipos, ilen;
  char nc() {
    if (ipos == ilen) {
      ipos = 0;
      ilen = fread(ibuf, 1, BSZ, stdin);
      if (!ilen) return EOF;
    }
    return ibuf[ipos++];
  }
  template <class T>
  void init(T& x) {
    char ch;
    long long sgn = 1;
    while (!isdigit(ch = nc()))
      if (ch == '-') sgn *= -1;
    x = ch - '0';
    while (isdigit(ch = nc())) x = x * 10 + (ch - '0');
    x *= sgn;
  }
  }  // namespace FastIO
  using namespace FastIO;
  signed main(void) {
    ios::sync_with_stdio(false);
    cin.tie(0);
    long long t;
    cin >> t;
    while (t--) {
      long long n;
      cin >> n;
      long long ans = 1;
      n--;
      while (n > 0) {
        if (ans % 3 == 0 || ans % 10 == 3)
          ans++;
        else {
          ans++;
          n--;
        }
      }
      if (ans % 3 == 0 || ans % 10 == 3) {
        while (true) {
          ans++;
          if (ans % 3 != 0 && ans % 10 != 3) break;
        }
      }
      cout << ans << endl;
    }
    return 'm' - 109;
  }
  