#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 6e6 + 3;
const int oo = 1e9;
int ans[N], mx[N], mn[N];
set<int> st[N];
void update(int node, int l, int r, int a, int v, int flag) {
  if (l == a && r == a) {
    if (!flag)
      mx[node] = v;
    else
      mn[node] = v;
    return;
  }
  int m = (l + r) / 2;
  if (a <= m)
    update(node << 1, l, m, a, v, flag);
  else
    update((node << 1) + 1, m + 1, r, a, v, flag);
  ans[node] = ans[node << 1] | ans[(node << 1) + 1] |
              (mx[(node << 1) + 1] > mn[node << 1]);
  mx[node] = max(mx[node << 1], mx[(node << 1) + 1]);
  mn[node] = min(mn[node << 1], mn[(node << 1) + 1]);
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  for (int i = 0; i < N; ++i) mx[i] = -oo, mn[i] = oo;
  int n, m, q;
  cin >> n >> m >> q;
  while (q--) {
    int row, column;
    cin >> row >> column;
    if (row % 2 == 0) column = -column;
    if (st[row].count(column))
      st[row].erase(column);
    else
      st[row].insert(column);
    int toc = -oo;
    if (row % 2) toc = oo;
    if (st[row].size()) toc = abs(*st[row].begin());
    update(1, 0, 3 * n, row, toc, row % 2);
    if (ans[1])
      cout << "no\n";
    else
      cout << "yes\n";
  }
  return 0;
}
