#include <bits/stdc++.h>
using namespace std;
int tree[200005];
long long ans[200005];
set<pair<int, int> > s;
struct node {
  int x, y, t, tag;
} b[200005];
vector<node> v;
inline int lowbit(int x) { return x & (-x); }
inline int ask(int x) {
  if (!x) return x;
  return tree[x] + ask(x - lowbit(x));
}
inline void add(int x, int y) {
  if (x > 200001) return;
  tree[x] += y, add(x + lowbit(x), y);
}
inline bool cmp(node x, node y) {
  return x.x < y.x || x.x == y.x && (x.tag & 1) > (y.tag & 1);
}
int n, m, q;
const int qwq = 200001;
inline void solve(int l, int r) {
  int mid = (l + r) / 2;
  if (l == r) return;
  v.clear();
  for (int i = l; i <= r; i++) v.push_back(b[i]);
  sort(v.begin(), v.end(), cmp);
  for (auto x : v) {
    if ((x.tag & 1) && x.t <= mid) {
      if (x.tag == 1) add(x.y + 1, 1);
      if (x.tag == 3) add(x.y + 1, -1);
    } else {
      if (!(x.tag & 1) && x.t > mid) {
        if (x.tag == 0) ans[x.t] += ask(x.y + 1);
        if (x.tag == 2) ans[x.t] -= ask(x.y + 1);
      }
    }
  }
  for (auto x : v) {
    if (x.tag == 0 || x.tag == 2 || x.t > mid) continue;
    if (x.tag == 1) add(x.y + 1, -1);
    if (x.tag == 3) add(x.y + 1, 1);
  }
  reverse(v.begin(), v.end());
  for (auto x : v) {
    if (!(x.tag & 1) && x.t <= mid) {
      if (x.tag == 0) add(qwq - x.y, 1);
      if (x.tag == 2) add(qwq - x.y, -1);
    } else {
      if ((x.tag & 1) && x.t > mid) {
        if (x.tag == 1) ans[x.t] += ask(qwq - x.y);
        if (x.tag == 3) ans[x.t] -= ask(qwq - x.y);
      }
    }
  }
  for (auto x : v) {
    if (x.tag == 1 || x.tag == 3 || x.t > mid) continue;
    if (x.tag == 0) add(qwq - x.y, -1);
    if (x.tag == 2) add(qwq - x.y, 1);
  }
  solve(l, mid), solve(mid + 1, r);
}
int main(int argc, char** argv) {
  cin >> n >> m >> q;
  for (int i = 1; i <= q; i++) {
    scanf("%d%d", &b[i].x, &b[i].y);
    b[i].tag = b[i].x & 1;
    if (s.find({b[i].x, b[i].y}) != s.end()) {
      s.erase({b[i].x, b[i].y});
      b[i].tag += 2;
    } else
      s.insert({b[i].x, b[i].y});
    b[i].t = i;
    --b[i].x, --b[i].y;
    b[i].x >>= 1, b[i].y >>= 1;
  }
  solve(1, q);
  for (int i = 1; i <= q; i++) ans[i] += ans[i - 1];
  for (int i = 1; i <= q; i++) {
    if (!ans[i])
      puts("YES");
    else
      puts("NO");
  }
  return 0;
}
