typedef long long ll;
const int mod = (int)1e9 + 7;
ll qpow(ll x, ll y){
ll ret = 1;
for( ; y; y >>= 1, x = (x * x) % mod){
if(y & 1) ret = (ret * x) % mod;
}
return ret;
}
typedef long long ll;
const int mod = (int)1e9 + 7;
ll qpow(ll x, ll y){
ll ret = 1;
for( ; y; y >>= 1, x = (x * x) % mod){
if(y & 1) ret = (ret * x) % mod;
}
return ret;
}