#include #include using namespace std; const int MOD = 1e9 + 7; long long repow(long long x, long long y){ if(y == 0) return 1; long long res = 1; while(y > 0){ if(y & 1) res = res * x % MOD; x = x * x % MOD; y >>= 1; } return res; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int testcase; cin >> testcase; while(testcase--){ long long N, M, X; cin >> N >> M >> X; long long temp = repow(M + 1, N); long long temp2 = repow(1 - M, N); long long t = repow(2, MOD - 2) % MOD; if(X == 1){ cout << ((temp - temp2) * t % MOD + MOD) % MOD << endl; } else{ cout << ((temp + temp2) * t % MOD + MOD) % MOD << endl; } } }