#include #include using namespace std; using mint = atcoder::modint1000000007; void fast_io() { ios::sync_with_stdio(false); std::cin.tie(nullptr); } int main() { fast_io(); int S; cin >> S; while (S--) { long long n, m, x; cin >> n >> m >> x; if (n % 2 == 0) { if (x == 0) { mint ans = (mint(m + 1).pow(n) + mint(m - 1).pow(n)) / 2; cout << ans.val() << endl; } else { mint ans = (mint(m + 1).pow(n) - mint(m - 1).pow(n)) / 2; cout << ans.val() << endl; } } else { if (x == 0) { mint ans = (mint(m + 1).pow(n - 1) + mint(m - 1).pow(n - 1) + m * (mint(m + 1).pow(n - 1) - mint(m - 1).pow(n - 1))) / 2; cout << ans.val() << endl; } else { mint ans = (mint(m + 1).pow(n - 1) - mint(m - 1).pow(n - 1) + m * (mint(m + 1).pow(n - 1) + mint(m - 1).pow(n - 1))) / 2; cout << ans.val() << endl; } } } }