#include <bits/stdc++.h>
using namespace std;
long long n, m;
long long res;
long long k;
vector<long long> hang[100100], cot[100100];
int huong;
long long nowx, nowy;
long long find1(vector<long long> v, long long val) {
  int res = -1;
  int lo = 0;
  int hi = v.size() - 1;
  while (lo <= hi) {
    int mid = (lo + hi) >> 1;
    if (v[mid] > val) {
      res = mid;
      hi = mid - 1;
    } else
      lo = mid + 1;
  }
  return v[res];
}
long long find2(vector<long long> v, long long val) {
  int res = -1;
  int lo = 0;
  int hi = v.size() - 1;
  while (lo <= hi) {
    int mid = (lo + hi) >> 1;
    if (v[mid] < val) {
      res = mid;
      lo = mid + 1;
    } else
      hi = mid - 1;
  }
  return v[res];
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n >> m >> k;
  for (int i = 1; i <= k; i++) {
    long long x, y;
    cin >> x >> y;
    hang[x].push_back(y);
    cot[y].push_back(x);
  }
  for (int i = 1; i <= n; i++) {
    hang[i].push_back(0);
    hang[i].push_back(m + 1);
  }
  for (int i = 1; i <= m; i++) {
    cot[i].push_back(0);
    cot[i].push_back(n + 1);
  }
  for (int i = 1; i <= n; i++) sort(hang[i].begin(), hang[i].end());
  for (int i = 1; i <= m; i++) sort(cot[i].begin(), cot[i].end());
  if (find1(hang[1], 1) - 1 == 1) {
    long long t = find1(cot[1], 1) - 1;
    if (t == n * m - k)
      cout << "Yes";
    else
      cout << "No";
    return 0;
  }
  res = 1;
  huong = 1;
  nowx = 1;
  nowy = 1;
  long long miny = 1;
  long long maxy = m;
  long long minx = 2;
  long long maxx = n;
  for (int i = 1; i <= (n + m) * 4; i++) {
    if (huong == 1) {
      long long y = find1(hang[nowx], nowy) - 1;
      y = min(y, maxy);
      maxy = min(y, maxy) - 1;
      res += abs(y - nowy);
      if (y == nowy) break;
      nowy = y;
      huong = 2;
      continue;
    }
    if (huong == 2) {
      long long x = find1(cot[nowy], nowx) - 1;
      x = min(x, maxx);
      maxx = min(x, maxx) - 1;
      res += abs(x - nowx);
      if (x == nowx) break;
      nowx = x;
      huong = 3;
      continue;
    }
    if (huong == 3) {
      long long y = find2(hang[nowx], nowy) + 1;
      y = max(y, miny);
      miny = max(y, miny) + 1;
      res += abs(y - nowy);
      if (y == nowy) break;
      nowy = y;
      huong = 4;
      continue;
    }
    if (huong == 4) {
      long long x = find2(cot[nowy], nowx) + 1;
      x = max(x, minx);
      minx = max(x, minx) + 1;
      res += abs(x - nowx);
      if (x == nowx) break;
      nowx = x;
      huong = 1;
      continue;
    }
  }
  if (res == (n * m - k))
    cout << "Yes";
  else
    cout << "No";
  return 0;
}
