#include <bits/stdc++.h>
#include <iostream>

using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair <int, int> pii;

// #define int              long long

#define f(i,n)           for(int i=0;i<n;i++)
#define pb               push_back
#define mp               make_pair
#define fi               first
#define se               second
#define setzero(a)       memset(a,0,sizeof(a))
#define precision(x,y)   fixed<<setprecision(y)<<x
#define mod              1000000007

// primeNumbers contains all the prime numbers till 1299720 (100000 prime numbers)
int primeNumbers[100000];
void SieveOfEratosthenes(int n)     // O(nlog(log(n)))
{
    bool prime[n+1]; 
    memset(prime, true, sizeof(prime)); 
  
    for (int p=2; p*p<=n; p++) 
    {
        if (prime[p] == true) 
        { 
            for (int i=p*p; i<=n; i += p) 
                prime[i] = false; 
        } 
    }
    int i=0;
    for (int p=2; p<=n; p++) 
       if (prime[p]) 
       {
           primeNumbers[i] = p;
           i ++;
       }
}

int binarySearch(int arr[], int l, int r, int x)  // Recursive 
{ 
    if (r >= l) 
    { 
        int mid = l + (r - l) / 2; 
  
        if (arr[mid] == x) 
            return mid; 
   
        if (arr[mid] > x) 
            return binarySearch(arr, l, mid - 1, x); 
  
        return binarySearch(arr, mid + 1, r, x); 
    } 
  
    // We reach here when element is not present in array
    return -1; 
}
ll power(ll a, ll b, ll p)
{
	if(a==0)
		return 0;
	ll res=1;
	a%=p;
	while(b>0)
	{
		if(b&1)
			res=(res*a)%p;
		b>>=1;
		a=(a*a)%p;
	}
	return res;
}

/*Driver Code*/
int main() {
    
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    
	int t;
	cin >> t;
	while(t--)
	{
	    ll n,m,k;
	    cin >> n >> m >> k;
	    ll ans = n-1 + n*(m-1);
	    if(ans == k) cout << "YES\n";
	    else cout << "NO\n";
	    
	}
	return 0;
}
