#include using namespace std; #include using namespace atcoder; using ll=long long; using Graph=vector>; #define INF 1000000000000000000 #define MOD 1000000007 #define MAX 1000000 ll modpow(ll a,ll n,ll mod=MOD){ ll res=1; a%=mod; while(n>0){ if(n&1){ res=(res*a)%mod; } a=(a*a)%mod; n>>=1; } return res; } ll modinv(ll a,ll mod=MOD){ return modpow(a,mod-2,mod); } void solve(){ ll N,M; cin>>N>>M; ll x=modpow(N,M); ll ans=x*(x+1)/2; ans%=MOD; ll y=modpow(N,M/2); ans+=MOD-((y*(y+1)%MOD)*(2*y+1)%MOD)*modinv(6)%MOD; ans%=MOD; cout<>T; for(int i=0;i