#include <bits/stdc++.h>
#pragma GCC optimize(3, "Ofast", "inline")
#pragma GCC target("avx,avx2")
using namespace std;
template <class t>
inline t read(t &x) {
  char c = getchar();
  bool f = 0;
  x = 0;
  while (!isdigit(c)) f |= c == '-', c = getchar();
  while (isdigit(c)) x = (x << 1) + (x << 3) + (c ^ 48), c = getchar();
  if (f) x = -x;
  return x;
}
template <class t, class... A>
inline void read(t &x, A &...a) {
  read(x);
  read(a...);
}
template <class t>
inline void write(t x) {
  if (x < 0)
    putchar('-'), write(-x);
  else {
    if (x > 9) write(x / 10);
    putchar('0' + x % 10);
  }
}
const int N = 2e5 + 5;
int n, m, q, mi[N << 2], ma[N << 2];
map<pair<int, int>, bool> mp;
bool fl[N << 2];
set<int> lset[N], rset[N];
void pushup(int first) {
  ma[first] = max(ma[first << 1], ma[first << 1 | 1]);
  mi[first] = min(mi[first << 1], mi[first << 1 | 1]);
  fl[first] = fl[first << 1] | fl[first << 1 | 1] |
              (ma[first << 1 | 1] >= mi[first << 1]);
}
void build(int first, int l, int r) {
  if (l == r) {
    ma[first] = 0;
    mi[first] = m + 1;
    return;
  }
  int mid = l + r >> 1;
  build(first << 1, l, mid);
  build(first << 1 | 1, mid + 1, r);
  pushup(first);
}
void up(int first, int l, int r, int p) {
  if (l == r) {
    ma[first] = rset[l].size() ? *rset[l].rbegin() : 0;
    mi[first] = lset[l].size() ? *lset[l].begin() : m + 1;
    fl[first] = ma[first] >= mi[first];
    return;
  }
  int mid = l + r >> 1;
  if (p <= mid)
    up(first << 1, l, mid, p);
  else
    up(first << 1 | 1, mid + 1, r, p);
  pushup(first);
}
void doit() {
  int first, second;
  read(first, second);
  first++;
  second++;
  if (mp[pair<int, int>(first, second)]) {
    if (second & 1)
      rset[first >> 1].erase(second >> 1);
    else
      lset[first >> 1].erase(second >> 1);
  } else {
    if (second & 1)
      rset[first >> 1].insert(second >> 1);
    else
      lset[first >> 1].insert(second >> 1);
  }
  mp[pair<int, int>(first, second)] ^= 1;
  up(1, 1, n, first >> 1);
  puts(fl[1] ? "NO" : "YES");
}
signed main() {
  read(n, m, q);
  build(1, 1, n);
  while (q--) doit();
}
