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: /*
  	Author : Krishnasai Muniganti
  */
   
  import java.io.*;
  import java.util.*;
  import java.math.*;
  
  //Main Class
  public class CFAugDiv3_2021_A extends Helper{
  	public static void main(String[] args) throws IOException{
  		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));		
  		int t = _int(br);
  		
  		while(t-->0) {
  			int k = _int(br);
  			int i = 1, ans = 1;
  			for(; k > 0; ++i) {
  				if(check(i)) {
  					ans = i;
  					k--;
  				}				
  			}
  			print(ans + "\n");
  		}
  		bw.flush();
  	}
  	
  	static boolean check(int n) {
  		return n % 3 != 0 && n % 10 != 3;
  	}
  
  }
  
  /* I/O Class */
  class Helper {	
  	static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
  	public static int _int(BufferedReader br) throws IOException{
  		return Integer.parseInt(br.readLine());
  	}
  	public static float _float(BufferedReader br) throws IOException{
  		return Float.parseFloat(br.readLine());
  	}
  	public static double _double(BufferedReader br) throws IOException{
  		return Double.parseDouble(br.readLine());
  	}
  	public static long _long(BufferedReader br) throws IOException{
  		return Long.parseLong(br.readLine());
  	}
  	public static String _str(BufferedReader br) throws IOException{
  		return br.readLine();
  	}
  	public static String[] split(BufferedReader br) throws IOException{
  		return br.readLine().split(" ");
  	}
  	public static int _int(String str) throws IOException{
  		return Integer.parseInt(str);
  	}
  	public static float _float(String str) throws IOException{
  		return Float.parseFloat(str);
  	}
  	public static double _double(String str) throws IOException{
  		return Double.parseDouble(str);
  	}
  	public static long _long(String str) throws IOException{
  		return Long.parseLong(str);
  	}	
  	public static void line(BufferedReader br) throws IOException{
  		br.readLine();
  	}
  	public static void print(String str) throws IOException{
  		bw.write(str);
  	}
  }
  