#include <bits/stdc++.h>
using namespace std;
long long power(long long a, long long b, long long md) {
  return (!b ? 1
             : (b & 1 ? a * power(a * a % md, b / 2, md) % md
                      : power(a * a % md, b / 2, md) % md));
}
const int xn = 2e5 + 10;
const int xm = -20 + 10;
const int SQ = 320;
const int sq = 320 + 10;
const int inf = 1e9 + 10;
const long long INF = 1e18 + 10;
const int MOD = 1e9 + 7;
const int TM = 3;
const int BASE = 257;
int n, m, q, seg[2][xn << 2];
set<int> st[2][xn];
bool ans;
void build(int id, int l, int r, bool flag) {
  if (r - l == 1) {
    seg[flag][id] = inf;
    return;
  }
  int mid = l + r >> 1;
  build(id << 1, l, mid, flag);
  build(id << 1 | 1, mid, r, flag);
  seg[flag][id] = inf;
}
void modify(int id, int l, int r, int pos, int val, bool flag) {
  if (r - l == 1) {
    seg[flag][id] = min(seg[flag][id], val);
    return;
  }
  int mid = l + r >> 1;
  if (pos < mid)
    modify(id << 1, l, mid, pos, val, flag);
  else
    modify(id << 1 | 1, mid, r, pos, val, flag);
  seg[flag][id] = min(seg[flag][id << 1], seg[flag][id << 1 | 1]);
}
int get(int id, int l, int r, int ql, int qr, bool flag) {
  if (qr <= l || r <= ql) return inf;
  if (ql <= l && r <= qr) return seg[flag][id];
  int mid = l + r >> 1;
  return min(get(id << 1, l, mid, ql, qr, flag),
             get(id << 1 | 1, mid, r, ql, qr, flag));
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  cin >> n >> m >> q;
  for (int i = 0; i < 2; ++i) build(1, 0, xn, i);
  while (q--) {
    int x, y;
    cin >> x >> y;
    bool flag = x % 2;
    int X = x;
    int Y = y;
    x = (x + 1) / 2;
    y = (y + 1) / 2;
    if (flag) {
      int a = -get(1, 0, xn, x, n + 1, !flag);
      modify(1, 0, xn, x, y, flag);
      ans |= (a >= y);
    } else {
      int a = get(1, 0, xn, 1, x + 1, !flag);
      modify(1, 0, xn, x, -y, flag);
      ans |= (a <= y);
    }
    if (ans)
      cout << "NO" << '\n';
    else
      cout << "YES" << '\n';
  }
  return 0;
}
