#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int mx=2e6;
const int mod=1e9+7;
int n,m;
ll res,fac[mx+5],inv[mx+5];
ll fpow(ll x,ll y) {
ll mul=1;
for(;y;y>>=1) {
if(y&1) mul=mul*x%mod;
x=x*x%mod;
}
return mul;
}
ll C(ll x,ll y) {
return fac[x]*inv[x-y]%mod*inv[y]%mod;
}
ll A(ll x,ll y) {
return fac[x]*inv[x-y]%mod;
}
ll G(ll x,ll y) {
return C(x+y-1,y-1);
}
int main() {
fac[0]=1;
for(int i=1;i<=mx;i++) fac[i]=fac[i-1]*i%mod;
inv[mx]=fpow(fac[mx],mod-2);
for(int i=mx;i>=1;i--) {
inv[i-1]=inv[i]*i%mod;
}
}