#include //#include using namespace std; //using namespace atcoder; using ll = long long; using ull = unsigned long long; using P = pair; #define rep(i,n) for(ll i = 0;i < (ll)n;i++) #define ALL(x) (x).begin(),(x).end() #define MOD 1000000007 ll modpow(ll n,ll r){ ll res = 1; while(r){ if(r & 1)res = res*n%MOD; n = n*n%MOD; r >>= 1; } return res; } int main(){ int T; cin >> T; while(T--){ int n,m,x; cin >> n >> m >> x; if((x & 1) == (n & 1)){ cout << ((modpow(m-1,n)+modpow(m+1,n))%MOD)*modpow(2,MOD-2)%MOD << "\n"; }else{ cout << (MOD-modpow(m-1,n)+modpow(m+1,n))%MOD*modpow(2,MOD-2)%MOD << "\n"; } } return 0; }