#include #include #include #include #include #include #include #include #include #include #include #include #define ll long long #define rep(i,n) for(ll i=0;i=0;--i) #define all(a) (a).begin(),(a).end() #define vl vector #define vvl vector > #define vb vector #define vvb vector > #define pl pair #define inf 1001001001001001000 #define mod 1000000007 //#define mod 998244353 #define pi 3.1415926535 using namespace std; struct __INIT{ __INIT(){ cin.tie(0); ios::sync_with_stdio(false); cout<0;--i) ifact[i-1] = (ifact[i]*i)%mod; } ll mcomb(ll a,ll b){ if(a>__; init_comb(); rep(_,__){ ll n,m,x; cin>>n>>m>>x; ll ans = 0; rep(i,n+1){ if(i%2 == x) ans = (ans+(mcomb(n,i)*mpow(m,i))%mod)%mod; } cout<