#include <bits/stdc++.h>
using namespace std;
using ll = long long int;

#define REP(i, n) FOR(i, 0, n)
#define FOR(i, s, n) for (int i = (s), i##_len = (n); i < i##_len; ++i)
#define isvisiblechar(c) (0x21 <= (c) && (c) <= 0x7E)
#define cin scanner
#define cout printer
namespace {
class MaiScanner {
  public:
    template <typename T> void input_integer(T &var) {
        var = 0;
        T sign = 1;
        int cc = getchar_unlocked();
        for (; cc < '0' || '9' < cc; cc = getchar_unlocked())
            if (cc == '-')
                sign = -1;
        for (; '0' <= cc && cc <= '9'; cc = getchar_unlocked())
            var = (var << 3) + (var << 1) + cc - '0';
        var = var * sign;
    }
    inline int c() { return getchar_unlocked(); }
    inline MaiScanner &operator>>(int &var) {
        input_integer<int>(var);
        return *this;
    }
    inline MaiScanner &operator>>(long long &var) {
        input_integer<long long>(var);
        return *this;
    }
    inline MaiScanner &operator>>(string &var) {
        int cc = getchar_unlocked();
        for (; !isvisiblechar(cc); cc = getchar_unlocked())
            ;
        for (; isvisiblechar(cc); cc = getchar_unlocked())
            var.push_back(cc);
        return *this;
    }
    template <typename IT> void in(IT begin, IT end) {
        for (auto it = begin; it != end; ++it)
            *this >> *it;
    }
};
class MaiPrinter {
  public:
    template <typename T> void output_integer(T var) {
        if (var == 0) {
            putchar_unlocked('0');
            return;
        }
        if (var < 0)
            putchar_unlocked('-'), var = -var;
        char stack[32];
        int stack_p = 0;
        while (var)
            stack[stack_p++] = '0' + (var % 10), var /= 10;
        while (stack_p)
            putchar_unlocked(stack[--stack_p]);
    }
    inline MaiPrinter &operator<<(char c) {
        putchar_unlocked(c);
        return *this;
    }
    inline MaiPrinter &operator<<(int var) {
        output_integer<int>(var);
        return *this;
    }
    inline MaiPrinter &operator<<(long long var) {
        output_integer<long long>(var);
        return *this;
    }
    inline MaiPrinter &operator<<(char *str_p) {
        while (*str_p)
            putchar_unlocked(*(str_p++));
        return *this;
    }
    inline MaiPrinter &operator<<(const string &str) {
        const char *p = str.c_str();
        const char *l = p + str.size();
        while (p < l)
            putchar_unlocked(*p++);
        return *this;
    }
    template <typename IT> void join(IT begin, IT end, char sep = ' ') {
        for (bool b = 0; begin != end; ++begin, b = 1)
            b ? *this << sep << *begin : *this << *begin;
    }
};
} // namespace
MaiScanner scanner;
MaiPrinter printer;

template <class T> class CulSum2D {
  private:
    // original
    int H, W;

    // original+1
    vector<vector<T>> data;

  public:
    /// @param _H original
    /// @param _W original
    CulSum2D(int _H, int _W) : H(_H), W(_W) { reset(); }

    void reset() { data = vector<vector<T>>(H + 1, vector<T>(W + 1, T{})); }

    /// 0-index
    /// @param y original
    /// @param x original
    /// @param d original
    void add(T y, T x, T d) {
        y++;
        x++;
        if (y >= H + 1 || x >= W + 1)
            return;
        data[y][x] += d;
    }

    void build() {
        for (int i = 0; i < H; i++) {
            for (int j = 0; j < W; j++) {
                data[i + 1][j + 1] +=
                    data[i + 1][j] + data[i][j + 1] - data[i][j];
            }
        }
    }

    /// 0-index
    /// @param sy original close
    /// @param sx original close
    /// @param ty original open
    /// @param tx original open
    T get(int sy, int sx, int ty, int tx) {
        return data[ty][tx] - data[ty][sx] - data[sy][tx] + data[sy][sx];
    }
};

int main(void) {
    int N, M, Q;
    cin >> N >> M >> Q;
    CulSum2D<int> sum(N + 1, N + 1);
    REP(i, M) {
        int l, r;
        cin >> l >> r;
        sum.add(l, r, 1);
    }
    sum.build();
    REP(i, Q) {
        int p, q;
        cin >> p >> q;
        cout << sum.get(p, p, q + 1, q + 1) << '\n';
    }

    return 0;
}


Measured memory_bytes: 1920