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 = [0] ans = 0 if (Gx,Gy) == (0,0): ans += 1 def dfs(x, y, k): global ans if (x, y) == (Gx, Gy) and X[-1] > 0: tmp = fact[sum(X)] for xa in X: tmp *= rfact[xa] 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)