#include <bits/stdc++.h>
using namespace std;
tuple<bool, long long, long long> domerge(tuple<bool, long long, long long> a,
                                          tuple<bool, long long, long long> b) {
  return {get<0>(a) && get<0>(b) && get<2>(a) > get<1>(b),
          max(get<1>(a), get<1>(b)), min(get<2>(a), get<2>(b))};
}
class SegmentTree {
 public:
  vector<tuple<bool, long long, long long> > a;
  long long n;
  SegmentTree(long long sz) {
    n = sz;
    a.resize(4 * n, tuple<bool, long long, long long>(true, -1, 1000000000LL));
  }
  void set(long long v, long long vl, long long vr, long long i,
           tuple<bool, long long, long long> x) {
    if (vr - vl == 1) {
      a[v] = x;
    } else {
      long long vm = (vl + vr) / 2;
      if (i < vm) {
        set(v * 2, vl, vm, i, x);
      } else {
        set(v * 2 + 1, vm, vr, i, x);
      }
      a[v] = domerge(a[v * 2], a[v * 2 + 1]);
    }
  }
  void set(long long i, tuple<bool, long long, long long> x) {
    set(1, 0, n, i, x);
  }
  tuple<bool, long long, long long> get(long long v, long long vl, long long vr,
                                        long long l, long long r) {
    if (vl == l && vr == r) {
      return a[v];
    } else {
      long long vm = (vl + vr) / 2;
      if (r <= vm) {
        return get(v * 2, vl, vm, l, r);
      } else if (l >= vm) {
        return get(v * 2 + 1, vm, vr, l, r);
      } else {
        return domerge(get(v * 2, vl, vm, l, vm),
                       get(v * 2 + 1, vm, vr, vm, r));
      }
    }
  }
  tuple<bool, long long, long long> get(long long l, long long r) {
    return get(1, 0, n, l, r);
  }
};
signed main() {
  long long n, m, q;
  cin >> n >> m >> q;
  SegmentTree st(n);
  for (long long cnt = 0; cnt < q; cnt++) {
    long long i, j;
    cin >> i >> j;
    i--;
    j--;
    bool is_one = i % 2 == 0;
    i /= 2;
    j /= 2;
    auto line = st.get(i, i + 1);
    if (is_one) {
      get<2>(line) = min(get<2>(line), j);
    } else {
      get<1>(line) = max(get<1>(line), j);
    }
    get<0>(line) = get<1>(line) < get<2>(line);
    st.set(i, line);
    if (get<0>(st.get(0, n))) {
      cout << "YES"
           << "\n";
    } else {
      cout << "NO"
           << "\n";
    }
  }
  return 0;
}
