#include <bits/stdc++.h>
using namespace std;
signed main() {
  cin.tie(0);
  cout.tie(0);
  ios_base ::sync_with_stdio(0);
  long long n, m, k;
  cin >> n >> m >> k;
  vector<long long> hor[n], ver[m];
  for (long long i = 0; i < n; i++) {
    hor[i].push_back(-1);
  }
  for (long long i = 0; i < m; i++) {
    ver[i].push_back(-1);
  }
  vector<pair<long long, long long>> obs;
  map<long long, bool> is_obs[n];
  for (long long i = 0; i < k; i++) {
    long long x, y;
    cin >> x >> y;
    x--;
    y--;
    is_obs[x][y] = true;
    obs.push_back({x, y});
  }
  sort(obs.begin(), obs.end());
  for (long long i = 0; i < k; i++) {
    hor[obs[i].first].push_back(obs[i].second);
    ver[obs[i].second].push_back(obs[i].first);
  }
  for (long long i = 0; i < n; i++) {
    hor[i].push_back(m);
  }
  for (long long i = 0; i < m; i++) {
    ver[i].push_back(n);
  }
  long long x = -1, y = -1, new_x = 0, new_y = 0, dir = 1;
  long long min_x = 0, min_y = 0, max_x = n - 1, max_y = m - 1;
  long long cnt = 0;
  while (x != new_x || y != new_y || (!x && !y && n > 1 && !is_obs[x + 1][y])) {
    x = new_x;
    y = new_y;
    if (dir == 1 || dir == 3) {
      long long new_y_ind =
          (long long)(upper_bound(hor[x].begin(), hor[x].end(), y) -
                      hor[x].begin());
      if (dir == 1) {
        new_y = hor[x][new_y_ind] - 1;
        new_y = min(new_y, max_y);
        min_x = max(min_x, x + 1);
      } else {
        new_y = hor[x][new_y_ind - 1] + 1;
        new_y = max(new_y, min_y);
        max_x = min(max_x, x - 1);
      }
      new_x = x;
    } else {
      long long new_x_ind =
          (long long)(upper_bound(ver[y].begin(), ver[y].end(), x) -
                      ver[y].begin());
      if (dir == 2) {
        new_x = ver[y][new_x_ind] - 1;
        new_x = min(new_x, max_x);
        max_y = min(max_y, y - 1);
      } else {
        new_x = ver[y][new_x_ind - 1] + 1;
        new_x = max(new_x, min_x);
        min_y = max(min_y, y + 1);
      }
      new_y = y;
    }
    cnt += abs(new_x - x) + abs(new_y - y);
    dir++;
    if (dir == 5) {
      dir = 1;
    }
  }
  if (cnt + k + 1 == n * m) {
    cout << "Yes";
  } else {
    cout << "No";
  }
  return 0;
}
