
#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.