#include <bits/stdc++.h>
using namespace std;
inline int read_int() {
  int t = 0;
  bool sign = false;
  char c = getchar();
  while (!isdigit(c)) {
    sign |= c == '-';
    c = getchar();
  }
  while (isdigit(c)) {
    t = (t << 1) + (t << 3) + (c & 15);
    c = getchar();
  }
  return sign ? -t : t;
}
inline long long read_LL() {
  long long t = 0;
  bool sign = false;
  char c = getchar();
  while (!isdigit(c)) {
    sign |= c == '-';
    c = getchar();
  }
  while (isdigit(c)) {
    t = (t << 1) + (t << 3) + (c & 15);
    c = getchar();
  }
  return sign ? -t : t;
}
inline char get_char() {
  char c = getchar();
  while (c == ' ' || c == '\n' || c == '\r') c = getchar();
  return c;
}
inline void write(long long x) {
  register char c[21], len = 0;
  if (!x) return putchar('0'), void();
  if (x < 0) x = -x, putchar('-');
  while (x) c[++len] = x % 10, x /= 10;
  while (len) putchar(c[len--] + 48);
}
inline void space(long long x) { write(x), putchar(' '); }
inline void enter(long long x) { write(x), putchar('\n'); }
const int MAXN = 2e5 + 5;
pair<int, int> opt[MAXN];
int low[MAXN];
int main() {
  int n = read_int(), m = read_int(), q = read_int(), a, b;
  for (int i = (0); i < (q); ++i) {
    a = read_int(), b = read_int();
    opt[i] = make_pair(a, b);
  }
  int lef = 0, rig = q - 1, mid, ans = -1;
  while (lef <= rig) {
    mid = lef + rig >> 1;
    memset(low, 127, sizeof(low));
    bool ok = true;
    for (int i = (0); i <= (mid); ++i)
      if (opt[i].first % 2)
        low[opt[i].first / 2] = min(low[opt[i].first / 2], opt[i].second);
    for (int i = (1); i < (n); ++i) low[i] = min(low[i], low[i - 1]);
    for (int i = (0); i <= (mid); ++i)
      if (opt[i].first % 2 == 0)
        ok &= low[(opt[i].first - 1) / 2] > opt[i].second;
    if (ok) {
      ans = mid;
      lef = mid + 1;
    } else
      rig = mid - 1;
  }
  for (int i = (0); i <= (ans); ++i) puts("YES");
  for (int i = (ans + 1); i < (q); ++i) puts("NO");
  return 0;
}
