#include <bits/stdc++.h>
using namespace std;
const unsigned long long base = 131;
const int inf = 0x3f3f3f3f;
const double PI = acos(-1.0);
const long double eps = 1e-7;
const int mod = 1e9 + 7;
const int M = 1e5 + 10;
vector<int> cntx[M], cnty[M];
int n, m, k, now, a, b, c, d;
int main(int argc, char const *argv[]) {
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 1; i <= k; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    cntx[x].push_back(y);
    cnty[y].push_back(x);
  }
  int x = 1, y = 1;
  long long int num = 1;
  now = m;
  for (int i = 0; i < cntx[x].size(); i++)
    if (cntx[x][i] > y) now = min(now, cntx[x][i] - 1);
  num += now - y, b = m - now + 1, a = 1, y = now;
  while (1) {
    now = n - c;
    for (int i = 0; i < cnty[y].size(); i++)
      if (cnty[y][i] > x) now = min(now, cnty[y][i] - 1);
    if (now == x) break;
    num += now - x, c = n - now + 1, x = now;
    now = 1 + d;
    for (int i = 0; i < cntx[x].size(); i++)
      if (cntx[x][i] < y) now = max(now, cntx[x][i] + 1);
    if (now == y) break;
    num += y - now, d = now, y = now;
    now = 1 + a;
    for (int i = 0; i < cnty[y].size(); i++)
      if (cnty[y][i] < x) now = max(now, cnty[y][i] + 1);
    if (now == x) break;
    num += x - now, a = now, x = now;
    now = m - b;
    for (int i = 0; i < cntx[x].size(); i++)
      if (cntx[x][i] > y) now = min(now, cntx[x][i] - 1);
    if (now == y) break;
    num += now - y, b = m - now + 1, y = now;
  }
  if (num == 1LL * n * m - k)
    printf("Yes\n");
  else
    printf("No\n");
  return 0;
}
