#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
int n, m, q, t = 1;
int lson[N * 2], rson[N * 2], vm[2][N * 2], ovl[N * 2];
set<pair<int, int> > sm[2][N * 2];
map<int, int> op[N * 2];
void build(int pos, int x, int y) {
  vm[1][pos] = m + 1;
  if (x == y) return;
  int mid = (x + y) >> 1;
  lson[pos] = ++t;
  rson[pos] = ++t;
  build(lson[pos], x, mid);
  build(rson[pos], mid + 1, y);
}
inline int MAX(int knd, int pos) {
  if (sm[knd][pos].empty()) return 0;
  set<pair<int, int> >::iterator it = sm[knd][pos].end();
  it--;
  return it->first;
}
inline int MIN(int knd, int pos) {
  if (sm[knd][pos].empty()) return m + 1;
  return sm[knd][pos].begin()->first;
}
void update(int pos) {
  vm[0][pos] = MAX(0, pos);
  if (lson[pos]) vm[0][pos] = max(vm[0][pos], vm[0][lson[pos]]);
  if (rson[pos]) vm[0][pos] = max(vm[0][pos], vm[0][rson[pos]]);
  vm[1][pos] = MIN(1, pos);
  if (lson[pos]) vm[1][pos] = min(vm[1][pos], vm[1][lson[pos]]);
  if (rson[pos]) vm[1][pos] = min(vm[1][pos], vm[1][rson[pos]]);
  ovl[pos] = (MIN(1, pos) <= vm[0][pos]) | (MAX(0, pos) >= vm[1][pos]);
  ovl[pos] |= ovl[lson[pos]] | ovl[rson[pos]];
}
void modify(int knd, int pos, int l, int r, int x, int y, pair<int, int> v) {
  if (l >= x && r <= y) {
    if (knd == 0) {
      if (sm[knd][pos].find(v) != sm[knd][pos].end())
        sm[knd][pos].erase(v);
      else
        sm[knd][pos].insert(v);
    } else {
      if (sm[knd][pos].find(v) != sm[knd][pos].end())
        sm[knd][pos].erase(v);
      else
        sm[knd][pos].insert(v);
    }
    update(pos);
    return;
  }
  if (l > y || r < x) return;
  int mid = (l + r) >> 1;
  modify(knd, lson[pos], l, mid, x, y, v);
  modify(knd, rson[pos], mid + 1, r, x, y, v);
  update(pos);
}
int main() {
  scanf("%d%d%d", &n, &m, &q);
  build(1, 1, n);
  for (int i = 1; i <= q; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    if (op[x][y] == 0) {
      op[x][y] = i;
      if (x % 2 == 0)
        modify(0, 1, 1, n, 1, x / 2, make_pair(y / 2, i));
      else
        modify(1, 1, 1, n, (x + 1) / 2, n, make_pair((y + 1) / 2, i));
    } else {
      if (x % 2 == 0)
        modify(0, 1, 1, n, 1, x / 2, make_pair(y / 2, op[x][y]));
      else
        modify(1, 1, 1, n, (x + 1) / 2, n, make_pair((y + 1) / 2, op[x][y]));
      op[x][y] = 0;
    }
    if (ovl[1])
      puts("NO");
    else
      puts("YES");
  }
  return 0;
}
