func_code_string:    #include<bits/stdc++.h>   using namespace std;   #define ll long long   #define imin INT_MIN   #define imax INT_MAX   #define br   n    #define sp       #define pie 3.141592653589793238462643383279   #define lower(sl) transform(sl.begin(), sl.end(), sl.begin(), ::tolower);   #define upper(sl) transform(sl.begin(), sl.end(), sl.begin(), ::toupper);   #define fo(i, n) for(int (i)=0;(i)<n;(i)++)   #define rfo(i, n) for(int (i)=n-1;(i)>=0;(i)--)   #define forl(i,a,n) for(int (i)=a;(i)<n;(i)++)   #define forr(i,a,n) for(int (i)=n-1;(i)>=a;(i)--)   #define tr(it, x) for(auto it = x.begin(); it != x.end(); it++)   #define trr(it, x) for(auto it = x.rbegin(); it != x.rend(); it++)   #define popcount(x) __builtin_popcount(x)  // count the number of one’s(set bits) in an integer.   #define popcountll(x) __builtin_popcountll(x)   #define clz(x) __builtin_clz(x)   // count the leading zeros(binary representation) of the integer   #define clzll(x) __builtin_clzll(x)   #define ctz(x) __builtin_ctz(x)   // count the trailing zeros(binary representation) of the integer   #define ctzll(x) __builtin_ctzll(x)   #define pb push_back   #define mp make_pair   #define F first   #define S second   #define gcd __gcd   #define lcm(a,b) ((a)*(b))/gcd(a,b)   #define deci(n) fixed << setprecision(n)   #define all(x) x.begin(),x.end()   #define max3(a,b,c) max(max(a,b),c)   #define min3(a,b,c) min(min(a,b),c)   #define max4(a,b,c,d) max(a,max3(b,c,d))   #define min4(a,b,c,d) min(a,min3(b,c,d))   #define max5(a,b,c,d,e) max(max4(a,b,c,d),e)   #define min5(a,b,c,d,e) min(min4(a,b,c,d),e)   typedef pair<int, int> pii;   typedef pair<ll, ll> pl;   typedef pair<double, double> pd;   typedef vector<int> vi;   typedef vector<ll> vl;   typedef vector<pii> vpii;   typedef vector<pl> vpl;   typedef vector<vi> vvi;   typedef vector<vl> vvl;   typedef priority_queue<int, vector<int>, greater<int>> minpq;   typedef priority_queue<int> pq;   typedef unordered_map<int,int> umii;   typedef map<int,int> mii;   typedef set<int> si;   typedef deque<int> di;   typedef queue<int> qi;   const int max_n = 1e6 + 1;   const int mod = 1e9 + 7;   const int inf = 1e9;   const ll linf = 1e18;   const int wmod = 998244353;      int midofthree(int a,int b,int c){       if((a<=b and a>=c) or (a<=c and a>=b))           return a;       else if((b>=a and b<=c) or (b<=a and b>=c))           return b;       return c;   }      bool isPowerTwo(int x){     return (x && !(x & (x-1)));    }      bool ispalindrome(string s){       ll len=s.length();        fo(i, len){            if(s[i]!=s[len-i-1])           return false;        }        return true;    }       bool isSubstring(string s1, string s2){       if(s1.find(s2) != string::npos) return true;           return false;   }      int sum_of_digits(int x){       int sum = 0;       while (x > 0)       {           sum += x % 10;           x /= 10;       }       return sum;   }      int num_of_digits(int x){       return floor(log10(x) + 1);   }          int binaryToDecimal(int n){       int num = n;       int dec_value = 0;       int base = 1;       int temp = num;       while (temp){           int last_digit = temp % 10;           temp = temp / 10;           dec_value += last_digit * base;           base = base * 2;       }       return dec_value;   }      int isvowel(char x){       if (x ==  a  || x ==  e  || x ==  i  || x ==  o  || x ==  u )           return 1;       return 0;   }      int isconsonant(char x){       if (x !=  a  && x !=  e  && x !=  i  && x !=  o  && x !=  u )           return 1;       return 0;   }      // Check if n is a prime in O(sqrt(n/6))   bool isPrime(int n){    if(n<=1)return 0;    if(n<=3)return 1;    if(n%2==0 or n%3==0)return 0;    for(int i=5;i*i<=n;i+=6){     if(n%i==0 or n%(i+2)==0)return 0;    }    return 1;   }      // Generate the all primes <= n in O(nlog(logn))   vi sieve(int n){       vi primes, isprime(n + 1, 1);       for (int i = 2; i * i <= n; i++)           if (isprime[i])               for (int j = i + i; j <= n; j += i)                   isprime[j] = 0;       for (int i = 2; i <= n; i++)           if (isprime[i])               primes.push_back(i);       return primes;   }      vi factorize(int n){       vi res;       for (int i = 2; i * i <= n; ++i){           while (n % i == 0){               res.push_back(i);               n /= i;           }       }       if (n != 1){           res.push_back(n);       }       return res;   }      // Iteratively finding (x^n)(mod M) (slightly faster)   int modularExponentiation(int x,int n,int M){       int result=1;       while(n>0){           if(n % 2 ==1){               result=(result * x)%M;}           x=(x*x)%M;           n = n>>1;       }       return result;   }      //  calculationg exponential in logn    int binaryExponentiation(int x,int n){       int result=1;       while(n>0){           if(n % 2 ==1){               result=result * x;}           x=x*x;           n=n/2;       }       return result;   }      int modInverse(int a, int m){       int m0 = m,y = 0, x = 1;        if (m == 1)            return 0;        while (a > 1) {            int q = a / m;            int t = m;            m = a % m, a = t;            t = y;            y = x - q * y;            x = t;}       if (x < 0)            x += m0;        return x;    }       ll factorial(int n){       if(n==1 || n==0){           return 1;       }       else{           return n*factorial(n-1);       }   }      #define MAX 1000   // Function to find the factorial of large number    // and return them in string format    string longfactorial(int n){       long long counter;        long double sum = 0;        if (n == 0)            return  1 ;        for (counter = 1; counter <= n;            counter++) {            sum = sum + log(counter);        }        string result = to_string(round(exp(sum)));        return result;    }      ll NcR(int n,int m){       ll z=1;       for(int i=0;i<m;i++)           z=z*(n-i)/(i+1);       return z;   }      void fillPrefixSum(int arr[], int n, int prefixSum[]){        prefixSum[0] = arr[0];       for (int i = 1; i < n; i++)            prefixSum[i] = prefixSum[i - 1] + arr[i];    }      /* ========== YOUR CODE HERE ========= */   void solution(){         // 0xAAAAAAAA=even bits set to 1 ; 0x55555555 = odd bits set to 1       // int prefixSuma[n];       // fillPrefixSum(a, n, prefixSuma);          // int n;         // cin>>n;       // int a[n];       // fo(i,n){       //     cin>>a[i];       // }       int w,h,n;       cin>>w>>h>>n;       if(n==1){           cout<< YES <<br;       }       else{           int c=1,a=0;           int t1=1, t2=1;           while(w%2==0){               c = 2*c;               w/=2;           }           while(h%2==0){               c*=2;               h/=2;           }           if(c>=n){               cout<< YES <<br;           }           else{               cout<< NO <<br;           }       }      }   /* ========== YOUR CODE HERE ========= */      int main(){       ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);       srand(chrono::high_resolution_clock::now().time_since_epoch().count());          int testcase = 1;       cin>>testcase;       while(testcase--) {           solution();       }       return 0;   }   // By Ashwani Kumar, Indian Institute Of Technology(IIT), Guwahati.