#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10, mod = 1e9 + 7;
int seg[4 * N][2];
bool flag[4 * N];
void add(int s, int e, int ind, int l, int r, int val, int tp) {
  if (s >= r || e <= l) return;
  if (s >= l && e <= r) {
    seg[ind][tp] = val;
    if (seg[ind][0] != -1 && seg[ind][1] != -1)
      flag[ind] = (seg[ind][0] <= seg[ind][1]);
    else
      flag[ind] = false;
    return;
  }
  int mid = (s + e) / 2;
  add(s, mid, 2 * ind, l, r, val, tp);
  add(mid, e, 2 * ind + 1, l, r, val, tp);
  if (seg[2 * ind][0] == -1 ||
      (seg[2 * ind + 1][0] != -1 && seg[2 * ind + 1][0] < seg[2 * ind][0]))
    seg[ind][0] = seg[2 * ind + 1][0];
  else
    seg[ind][0] = seg[2 * ind][0];
  seg[ind][1] = max(seg[2 * ind][1], seg[2 * ind + 1][1]);
  flag[ind] = (flag[2 * ind] | flag[2 * ind + 1]) |
              (seg[2 * ind][0] != -1 & seg[2 * ind][0] <= seg[2 * ind + 1][1]);
}
set<int> s[2][N];
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n, m, q;
  cin >> n >> m >> q;
  long long numBads = 0;
  memset(seg, -1, sizeof(seg));
  while (q--) {
    int x, y;
    cin >> x >> y;
    bool tp = 1 - (x & 1);
    x = (x - 1) / 2;
    y = (y - 1) / 2;
    bool exist = (s[tp][x].find(y) != s[tp][x].end());
    if (exist) {
      s[tp][x].erase(y);
    } else {
      s[tp][x].insert(y);
    }
    if (!s[0][x].empty())
      add(0, n, 1, x, x + 1, *s[0][x].begin(), 0);
    else
      add(0, n, 1, x, x + 1, -1, 0);
    if (!s[1][x].empty())
      add(0, n, 1, x, x + 1, *s[1][x].rbegin(), 1);
    else
      add(0, n, 1, x, x + 1, -1, 1);
    cout << (flag[1] ? "NO\n" : "YES\n");
  }
  return 0;
}
