#include <bits/stdc++.h>
using namespace std;
std::mt19937 rnd(
    (int)std::chrono::steady_clock::now().time_since_epoch().count());
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
const int MAXH = 200000;
const int MAXW = 200000;
const int MAXQ = 200000;
const int MAXS = 4 * MAXW;
int h, w, nq;
int qx[MAXQ], qy[MAXQ];
bool qans[MAXQ];
set<int> abyy[MAXW];
set<int> bbyy[MAXW];
int aval[MAXW], bval[MAXW];
int sval[MAXS][2];
int ssum[MAXS];
void spull(int x) {
  for (int kind = (0); kind < (2); ++kind)
    sval[x][kind] = max(sval[2 * x + 1][kind], sval[2 * x + 2][kind]);
  ssum[x] = max(max(ssum[2 * x + 1], ssum[2 * x + 2]),
                sval[2 * x + 1][1] + sval[2 * x + 2][0]);
}
void sinit(int x, int l, int r) {
  if (l == r) {
    sval[x][0] = sval[x][1] = ssum[x] = 0;
  } else {
    int m = l + (r - l) / 2;
    sinit(2 * x + 1, l, m);
    sinit(2 * x + 2, m + 1, r);
    spull(x);
  }
}
void smod(int x, int l, int r, int IDX, int KIND, int VAL) {
  if (l == r) {
    sval[x][KIND] = VAL;
    ssum[x] = sval[x][0] + sval[x][1];
  } else {
    int m = l + (r - l) / 2;
    if (IDX <= m)
      smod(2 * x + 1, l, m, IDX, KIND, VAL);
    else
      smod(2 * x + 2, m + 1, r, IDX, KIND, VAL);
    spull(x);
  }
}
void update(int y) {
  int wantaval = ((int)(abyy[y]).size()) == 0 ? 0 : *abyy[y].rbegin() + 1;
  if (wantaval != aval[y]) {
    aval[y] = wantaval;
    smod(0, 0, w - 1, y, 0, aval[y]);
  }
  int wantbval = ((int)(bbyy[y]).size()) == 0 ? 0 : h - *bbyy[y].begin();
  if (wantbval != bval[y]) {
    bval[y] = wantbval;
    smod(0, 0, w - 1, y, 1, bval[y]);
  }
}
void solve() {
  for (int y = (0); y < (w); ++y)
    abyy[y].clear(), bbyy[y].clear(), aval[y] = 0, bval[y] = 0;
  for (int i = (0); i < (nq); ++i) {
    int x = qx[i], y = qy[i];
    assert(x % 2 == y % 2);
    int col = x % 2;
    x /= 2;
    y /= 2;
    if (col == 1) {
      if (!abyy[y].count(x)) {
        abyy[y].insert(x);
        update(y);
      } else {
        abyy[y].erase(x);
        update(y);
      }
    } else {
      if (!bbyy[y].count(x)) {
        bbyy[y].insert(x);
        update(y);
      } else {
        bbyy[y].erase(x);
        update(y);
      }
    }
    qans[i] = ssum[0] <= h;
  }
}
void run() {
  scanf("%d%d%d", &h, &w, &nq);
  for (int i = (0); i < (nq); ++i)
    scanf("%d%d", &qx[i], &qy[i]), --qx[i], --qy[i];
  solve();
  for (int i = (0); i < (nq); ++i) printf("%s\n", qans[i] ? "YES" : "NO");
}
int main() {
  run();
  return 0;
}
