N, M = map(int, input().split()) A = [list(map(int, input().split())) for _ in range(M)] MOD = 10**9+7 K = 2*N+1 inv = [1]*K fac = [1]*K ifc = [1]*K for i in range(2, K): inv[i] = MOD-(inv[MOD % i]*(MOD//i) % MOD) fac[i] = fac[i-1]*i % MOD ifc[i] = ifc[i-1]*inv[i] % MOD def comb(n, m): if not 0 <= m <= n: return 0 return fac[n]*ifc[m] % MOD*ifc[n-m] % MOD ans = comb(2*N, N)*2*N % MOD for t, x, y in A: v = comb(x+y, x) if t == 1: x += 1 else: y += 1 v *= comb(2*N-x-y, N-x) v %= MOD ans -= v ans %= MOD print(ans)