#include <bits/stdc++.h>
using namespace std;
#pragma warning(disable : 4996)
const long double PI = 3.14159265358979323846;
const long long MOD = 998244353;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
const int MAXN = 200000;
struct pt {
  int mi, ma;
  bool flag;
};
pt t[4 * MAXN];
pt combine(pt a, pt b) {
  pt c;
  c.mi = min(a.mi, b.mi);
  c.ma = max(a.ma, b.ma);
  c.flag = ((a.mi > b.ma) && a.flag && b.flag);
  return c;
}
void build(int v, int tl, int tr) {
  if (tl == tr) {
    t[v].ma = -1;
    t[v].mi = INT32_MAX;
    t[v].flag = true;
    return;
  }
  int tm = (tl + tr) / 2;
  build(2 * v + 1, tl, tm);
  build(2 * v + 2, tm + 1, tr);
  t[v] = combine(t[2 * v + 1], t[2 * v + 2]);
}
void upd(int v, int tl, int tr, int pos, pair<int, int> val) {
  if (tl == tr) {
    t[v].mi = val.first;
    t[v].ma = val.second;
    t[v].flag = val.first > val.second;
    return;
  }
  int tm = (tl + tr) / 2;
  if (pos <= tm) {
    upd(2 * v + 1, tl, tm, pos, val);
  } else {
    upd(2 * v + 2, tm + 1, tr, pos, val);
  }
  t[v] = combine(t[2 * v + 1], t[2 * v + 2]);
}
int main() {
  srand(time(0));
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  int n, m, q;
  cin >> n >> m >> q;
  build(0, 0, n - 1);
  vector<set<int>> rma(n), rmi(n);
  for (int i = 0; i < n; i++) {
    rma[i].insert(-1);
    rmi[i].insert(INT32_MAX);
  }
  while (q--) {
    int x, y;
    cin >> x >> y;
    x--, y--;
    if (x % 2 == 0) {
      if (rmi[x / 2].count(y)) {
        rmi[x / 2].erase(y);
      } else {
        rmi[x / 2].insert(y);
      }
    } else {
      if (rma[x / 2].count(y)) {
        rma[x / 2].erase(y);
      } else {
        rma[x / 2].insert(y);
      }
    }
    long long fv = *rmi[x / 2].begin();
    long long sv = *rma[x / 2].rbegin();
    upd(0, 0, n - 1, x / 2, {fv, sv});
    if (t[0].flag) {
      cout << "YES\n";
    } else {
      cout << "NO\n";
    }
  }
}
