#include using namespace std; using ll=long long; #include using mint=atcoder::modint1000000007; const int MX=410009; mint fact[MX],ifact[MX]; mint comb(int n,int k){ if(fact[0]==0){ fact[0]=1; for(int i=1;i0;i--)ifact[i-1]=ifact[i]*i; } return fact[n]/fact[k]/fact[n-k]; } int main(){ ll N,M; cin>>N>>M; mint ans=comb(N+N,N)*(N+N); while(M--){ int t,x,y;cin>>t>>x>>y; if(t==1) ans-=comb(x+y,x)*comb((N-x-1)+(N-y),N-y); if(t==2) ans-=comb(x+y,x)*comb((N-x)+(N-y-1),N-x); } cout<