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
#include<iostream>
#include<bits/stdc++.h>
#include<vector>
#include<algorithm>
#include<string>
#include<cmath>
#include<iomanip>
#include<numeric>
#include<set>
// #include<pair>
#include<cctype>
 
 
using namespace std;
 
#define t() int test; cin >> test; while(test--)
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ll long long int
#define all(x) x.begin(), x.end()
#define ff first
#define ss second
#define mp make_pair
#define rep(i,a,n) for(int i=a;i<n;i++)
#define rrep(i, n) for(int i=n-1;i>=0;i--)
#define pb push_back
#define minv(a) *min_element(all(a))
#define maxv(a) *max_element(all(a))
#define sumv(a) accumulate(all(a),0)
#define lb lower_bound
#define ub upper_bound
#define mod 1000000007
#define INF 1000000000000000000LL
#define PI 3.14159265358979 
 
const int N = 1000005;
ll modd = 998244353;
vector<bool> isprime(N);
void seive(){
    isprime[0]=false;
    isprime[1]=false;
    
    for(int i=2; i*i<=1e6; i++){
        if(isprime[i]){
            for(int j=i*i; j<=1e6; j+=i){
                isprime[j]=false;
                
            }
        }
    }
}
 
 
 
// ll moduleinverse(ll x){
//     ll res=1;
//     ll y = mod-2;
//     x = x%mod;
//     while(y>0){
//         if(y&1) res = (res*x)%mod;
//         y/=2;
//         x = (x*x)%mod;
//     }
//     return res;
// }
 
 
 
// ll highpower(ll x,ll pow){
//     if(pow == 0) return 1;
//     ll res = (highpower(x,pow/2));
//     res %= modd;
//     res *= res;
//     res %= modd;
//     if(pow%2){
//         res *= x;
//         res %= modd;
//     }
//     return res;
// }
 
 
// ll nCrmodp(ll n, ll r){
//     if(n<r) return 0;
//     if(r==0) return 1;
//     return ((dp[n]*moduleinverse(dp[r])%mod)%mod * moduleinverse(dp[n-r])%mod)%mod;
// }
 
 
void letsdoit(){
    ll n; cin>>n;
    if(n%2) cout<<"YES";
    else{
        while(n%2 == 0){
            n /=2;
        }
        if(n == 1) cout<<"NO";
        else cout<<"YES";
    }
    cout<<endl;
}
 
 
 
int main() {
    
    // #ifndef ONLINE_JUDGE
    // freopen("in.txt", "r", stdin);
    // freopen("output.txt", "w", stdout);
    // #endif
    
    ios::sync_with_stdio(false);
	cin.tie(0);
    seive();
 
// 	cout<<fixed<<setprecision(10);
// 	fact();
    
    int t; 
    t=1;
    cin>>t;
    while(t--){
        letsdoit();
        
    }
    
    return 0;
}