#include using namespace std; //#include //using namespace atcoder; using ll=long long; using Graph=vector>; #define MAX 1000000 #define MOD 1000000007 //#define INF 1000000000 #define INF 1000000000000000000 ll fac[MAX],finv[MAX],inv[MAX]; void COMinit(){ fac[0]=fac[1]=1; finv[0]=finv[1]=1; inv[1]=1; for(int i=2;i>N>>M; COMinit(); ll ans=2*(ll)N*COM(2*N,N)%MOD; //cout<>t>>x>>y; if(t==1){ ans+=MOD-COM(x+y,x)*COM(2*N-x-y-1,N-y)%MOD; }else{ ans+=MOD-COM(x+y,x)*COM(2*N-x-y-1,N-x)%MOD; } ans%=MOD; } cout<