#include <cstdio>
#include <cassert>
#include <vector>
#include <set>
using namespace std;

#ifdef LOCAL
    #define eprintf(...) fprintf(stderr, __VA_ARGS__)
#else
    #define eprintf(...) 42;
#endif

const int INF = (int)1e9;

class Dimension {
    public:
        set <int> all;
        int n;
        int totalOk;
        vector < set < pair <int, int> > > segs;

        Dimension() {};

        Dimension(int n) {
            this->n = n;
            segs.resize(n);
            for (int i = 0; i < n; i++) {
                segs[i].clear();
            }
            totalOk = 0;
            all.clear();
        }

        void add(int x, int y) {
            assert(x < n && x >= 0);
            all.insert(x);
            bool was = segs[x].size() == 1;
            if (segs[x].empty()) {
                segs[x].insert(make_pair(y, y));
            } else {
                pair <int, int> nseg(y, y);
                auto nextIt = segs[x].upper_bound(nseg);
                if (nextIt == segs[x].begin()) {
                    pair <int, int> next = *nextIt;
                    if (nseg.first + 1 == next.first) {
                        segs[x].erase(nextIt);
                        nseg.second = next.second;
                    }
                    segs[x].insert(nseg);
                } else {
                    auto prevIt = nextIt;
                    --prevIt;
                    pair <int, int> prev = *prevIt;
                    if (prev.second + 1 == nseg.first) {
                        segs[x].erase(prevIt);
                        nseg.first = prev.first;
                    }
                    if (nextIt != segs[x].end()) {
                        pair <int, int> next = *nextIt;
                        if (nseg.second + 1 == next.first) {
                            segs[x].erase(nextIt);
                            nseg.second = next.second;
                        }
                    }
                    segs[x].insert(nseg);
                }
            }
            bool now = segs[x].size() == 1;
            if (was ^ now) {
                totalOk += was ? -1 : 1;
            }
        }

        inline bool isConnected() const {
            return totalOk == (int)all.size();
        }
};

int main() {
    freopen("turtles.in", "r", stdin);
    freopen("turtles.out", "w", stdout);
    int w, h;
    while (scanf("%d%d", &h, &w) == 2) {
        Dimension xs(w);
        Dimension ys(h);
        int n;
        scanf("%d", &n);
        for (int i = 0; i < n; i++) {
            int x, y;
            scanf("%d%d", &x, &y);
            --x, --y;
            xs.add(y, x);
            ys.add(x, y);
        }
        puts(xs.isConnected() && ys.isConnected() ? "YES" : "NO");
        int q;
        scanf("%d", &q);
        for (int i = 0; i < q; i++) {
            int x, y;
            scanf("%d%d", &x, &y);
            --x, --y;
            xs.add(y, x);
            ys.add(x, y);
            puts(xs.isConnected() && ys.isConnected() ? "YES" : "NO");
        }
    }
    return 0;
}
