#include<bits/stdc++.h>
using namespace std;
#define e exp(1)
#define pi acos(-1)
#define mod 1000000007
#define inf 0x3f3f3f3f
#define ll long long
#define ull unsigned long long
#define mem(a,b) memset(a,b,sizeof(a))
int gcd(int a,int b){return b?gcd(b,a%b):a;}
const int maxn=2e5+5;
ll n,m,k;
ll f[maxn],inv[maxn];
ll qpow(ll a,ll b)
{
ll ans=1;
while(b)
{
if(b&1)ans=ans*a%mod;
a=a*a%mod;
b>>=1;
}
return ans%mod;
}
void init()
{
f[0]=inv[0]=1;
for(int i=1; i<maxn; i++)
{
f[i]=f[i-1]*i%mod;
inv[i]=qpow(f[i],mod-2);
}
}
ll C(ll n,ll m)
{
return f[n]*inv[n-m]%mod*inv[m]%mod;
}