You are given an integer n. Check if n has an odd divisor, greater than one (does there exist such a number x (x > 1) that n is divisible by x and x is odd).

For example, if n=6, then there is x=3. If n=4, then such a number does not exist.

Input

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

Each test case contains one integer n (2 ≤ n ≤ 10^{14}).

Please note, that the input for some test cases won't fit into 32-bit integer type, so you should use at least 64-bit integer type in your programming language.

Output

For each test case, output on a separate line: 

  * "YES" if n has an odd divisor, greater than one; 
  * "NO" otherwise. 



You can output "YES" and "NO" in any case (for example, the strings yEs, yes, Yes and YES will be recognized as positive).

Example

Input


6
2
3
4
5
998244353
1099511627776


Output


NO
YES
NO
YES
YES
NO
import java.util.*;
import java.math.*;
import java.io.*;
import java.lang.*;
import java.io.*;
public class Main{

/*	static int N = (int) (1e6+10);
	static boolean [] vis = new boolean [N];
	static List<Long> prime = new ArrayList<>();

	// prime number
	static void seive(){
		for(int i=2;i<N;i++){
			if(!vis[i]){
				for(int j=i;j<N;j+=i){
					vis[j] = true;
				}
				prime.add((long)i);
			}
		}
	}
	// prime number ends*/

	// sorting (quick sort)
/*	static int partition(int arr[], int low, int high){
		int pivot = arr[high];
		int i = (low-1);
		for(int j=low;j<high;j++){
			if(arr[j] < pivot){
				i++;
				int temp = arr[i];
				arr[i] = arr[j];
				arr[j] = temp;
			}
		}
		int temp = arr[i+1];
		arr[i+1] = arr[high];
		arr[high] = temp;

		return i+1;
	}
	static void sort(int arr[], int low, int high){
		if(low<high){
			int pi = partition(arr, low, high);
			sort(arr, low, pi-1);
			sort(arr, pi+1, high);
		}
	}
	// sorting ends*/
    
    // find max from two int
/*	static int max(int a, int b){
		if(a > b){
			return a;
		}
		else
			return b;
	}
	// max ends*/

	// find GCD from two int
/*	static  int gcd(int a,int b){
        if(b==0)
        {
            return a;
        }
        return gcd(b,a%b);
    }
    // gcd ends*/

	static Scanner sc = new Scanner(System.in);
	//int t = sc.nextInt()   // take input 

	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	//int t = Integer.parseInt(br.readLine());   // take input
	//long n = Long.parseLong(br.readline());   // take input

	public static void main(String [] args)throws IOException{
		/*int t = sc.nextInt();
		while(t-->0){
			BigInteger n = sc.nextBigInteger();
			int count = 0;
			for(BigInteger i=BigInteger.valueOf(1);i.compareTo(n)<=0;i=i.add(BigInteger.ONE)){
				BigInteger rst = n.mod(i);
				BigInteger odd = new BigInteger("2");
				int oddcheck = 0;
				BigInteger oddrst = i.mod(odd);
				BigInteger a = new BigInteger("0");
				oddcheck = oddrst.compareTo(a);
				if(rst.compareTo(BigInteger.ZERO) == 0 && oddrst.compareTo(BigInteger.ONE) == 1 && i.compareTo(BigInteger.ONE) > 1 ){
					//rst.equals("0")
					System.out.println("YES");
					count++;
					break;
				}
			}
			if(count == 0){
				System.out.println("NO");
			}
		}*/

		/*int t = sc.nextInt();
		while(t-->0){
			long n = sc.nextLong();
			int count = 0;
			for(long i=1;i<=n;i++){
				if(n%i == 0 && i%2 != 0 && i>1){
					System.out.println("YES");
					count++;
					break;
				}
			}
			if(count == 0){
				System.out.println("NO");
			}
		}*/
		int t = Integer.parseInt(br.readLine());
		while(t-->0){
			long n = Long.parseLong(br.readLine());
			boolean flag = false;
			if(n%2 != 0){
				System.out.println("YES");
			}
			else{
				while(n>1){
					if(n%2 != 0){
						flag = true;
						break;
					}
					n /= 2;
				}
				if(flag){
					System.out.println("YES");
				}
				else{
					System.out.println("NO");
				}
			} 
		}
	}
}