MOD = 10 ** 9 + 7 N = 75 fact = [1]*(N+1) rfact = [1]*(N+1) r = 1 for i in range(1, N+1): fact[i] = r = r * i % MOD rfact[N] = r = pow(fact[N], -1, MOD) for i in range(N, 0, -1): rfact[i-1] = r = r * i % MOD def comb(n, k): return fact[n] * rfact[k] * rfact[n-k] % MOD Gx,Gy,K = map(int,input().split()) XYK = [list(map(int,input().split())) for _ in range(K)] X = [] ans = 0 def dfs(x,y,k): global ans if (x,y) == (Gx,Gy) and X[k-1] > 0: tmp = fact[sum(X)] for x in X: tmp *= rfact[x] tmp %= MOD ans += tmp ans %= MOD if k >= K: return x0,y0,n = XYK[k] for i in range(n+1): X.append(i) dfs(x+x0*i,y+y0*i,k+1) X.pop() dfs(0,0,0) print(ans)