#include <bits/stdc++.h>
using namespace std;
vector<int> row[100005], neg_r[100005];
vector<int> col[100005], neg_c[100005];
int main() {
  long long n, m;
  cin >> n >> m;
  int k;
  cin >> k;
  int x, y;
  for (int i = 0; i < k; i++) {
    cin >> x >> y;
    row[x].push_back(y);
    neg_r[x].push_back(-y);
    col[y].push_back(x);
    neg_c[y].push_back(-x);
  }
  for (int i = 0; i <= n; i++) {
    row[i].push_back(0);
    row[i].push_back(m + 1);
    neg_r[i].push_back(0);
    neg_r[i].push_back(-m - 1);
    sort(row[i].begin(), row[i].end());
    sort(neg_r[i].begin(), neg_r[i].end());
  }
  for (int i = 0; i <= m; i++) {
    col[i].push_back(0);
    col[i].push_back(n + 1);
    neg_c[i].push_back(0);
    neg_c[i].push_back(-n - 1);
    sort(col[i].begin(), col[i].end());
    sort(neg_c[i].begin(), neg_c[i].end());
  }
  int dir = 0;
  long long cnt = 1;
  int r = 1, c = 1;
  int max_r = n + 1, max_c = m + 1, mn_r = 1, mn_c = 0;
  int temp;
  int idx;
  bool first = true;
  while (true) {
    if (dir == 0) {
      idx = upper_bound(row[r].begin(), row[r].end(), c) - row[r].begin();
      dir = 1;
      temp = (min(max_c, row[r][idx]) - c - 1);
      if (temp == 0 && !first) break;
      first = false;
      cnt += temp;
      c = min(max_c, row[r][idx]) - 1;
      max_c = c;
    } else if (dir == 1) {
      idx = upper_bound(col[c].begin(), col[c].end(), r) - col[c].begin();
      dir = 2;
      temp = (min(max_r, col[c][idx]) - r - 1);
      if (temp == 0) break;
      cnt += temp;
      r = min(max_r, col[c][idx]) - 1;
      max_r = r;
    } else if (dir == 2) {
      idx =
          upper_bound(neg_r[r].begin(), neg_r[r].end(), -c) - neg_r[r].begin();
      dir = 3;
      temp = (c - max(mn_c, -neg_r[r][idx]) - 1);
      if (temp == 0) break;
      cnt += temp;
      c = max(mn_c, -neg_r[r][idx]) + 1;
      mn_c = c;
    } else if (dir == 3) {
      idx =
          upper_bound(neg_c[c].begin(), neg_c[c].end(), -r) - neg_c[c].begin();
      dir = 0;
      temp = (r - max(mn_r, -neg_c[c][idx]) - 1);
      if (temp == 0) break;
      cnt += temp;
      ;
      r = max(mn_r, -neg_c[c][idx]) + 1;
      mn_r = r;
    }
  }
  if (n * m - cnt == k)
    cout << "Yes\n";
  else
    cout << "No\n";
}
