#include <bits/stdc++.h>
using namespace std;
const int MAX = 2e5 + 7;
vector<pair<int, int> > v;
int n, h, w;
long long fact[MAX], inv[MAX];
long long dp[MAX];
bool visited[MAX];
long long expo(long long a, long long b) {
  long long x = 1, y = a;
  while (b > 0) {
    if (b % 2 == 1) {
      x = (x * y);
      if (x >= 1000000007) x = x % 1000000007;
    }
    y = (y * y);
    if (y >= 1000000007) y = y % 1000000007;
    b = b / 2;
  }
  return x;
}
long long total(int i) {
  int X = v[i].first;
  int Y = v[i].second;
  int m = h - X;
  int n = w - Y;
  long long ans = fact[n + m];
  ans = ans * inv[n];
  ans = ans % 1000000007;
  ans = ans * inv[m];
  ans = ans % 1000000007;
  return ans;
}
long long cal(int i, int j, int k) {
  int X = v[k].first;
  int Y = v[k].second;
  long long m = X - i;
  long long n = Y - j;
  long long ans = fact[m + n];
  ans = ans * inv[m];
  ans = ans % 1000000007;
  ans = ans * inv[n];
  ans = ans % 1000000007;
  return ans;
}
long long cal(int i) {
  if (i == n) return total(i);
  if (visited[i]) return dp[i];
  visited[i] = true;
  long long ans = total(i);
  for (int j = i + 1; j <= n; j++) {
    ans -= (cal(v[i].first, v[i].second, j) * cal(j)) % 1000000007;
    ans = ans + 1000000007;
    ans = ans % 1000000007;
  }
  dp[i] = ans;
  return ans;
}
int func() {
  fact[0] = inv[0] = 1;
  for (long long i = 1; i < MAX; i++) {
    fact[i] = (fact[i - 1] * i) % 1000000007;
    inv[i] = expo(fact[i], 1000000007 - 2);
  }
  sort(v.begin(), v.end());
  long long ans = fact[h + w - 2];
  ans = ans * inv[h - 1];
  ans = ans % 1000000007;
  ans = ans * inv[w - 1];
  ans = ans % 1000000007;
  for (int i = 1; i <= n; i++) {
    ans -= (cal(1, 1, i) * cal(i)) % 1000000007;
    ans = ans + 1000000007;
    ans = ans % 1000000007;
  }
  return ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin >> h >> w >> n;
  v.push_back(make_pair(-1, -1));
  for (int i = 1; i <= n; i++) {
    int x, y;
    cin >> x >> y;
    v.push_back(make_pair(x, y));
  }
  cout << func() << endl;
  return 0;
}
