# https://atcoder.jp/contests/abc106/tasks/abc106_d

# どうやったら高速に区間[p,q]に完全に入っている区間の数を取得できるか？

# p,qを二次元座標として捉えると電車1本の線は二次元平面上の1点として表せる

# このときp,qの区間に完全に入っている電車の本数というのは、x軸、y軸の両方において[p,q]となる四角形内にある電車の本数

# queryに高速に答えるために二次元累積和を構築する

import sys

read = sys.stdin.readline





def read_ints():

    return list(map(int, read().split()))





def read_tuple(H):

    '''

    H is number of rows

    '''

    ret = []

    for _ in range(H):

        ret.append(tuple(map(int, read().split())))

    return ret





import numpy as np



N, M, Q = read_ints()



# numpy使わずに再実装 #入れるときはpythonのほうが速いので

LR2d = [[0] * (N + 1) for _ in range(N + 1)]

for _ in range(M):

    L, R = read_ints()

    LR2d[L][R] += 1



LR2d = np.array(LR2d)



LR2d_accum = np.zeros((N + 2, N + 2), np.int64)

LR2d_accum[1:, 1:] = LR2d.cumsum(axis=0).cumsum(axis=1)  # 1次元累積和同様半開区間で考える

# つまりインデックスi,jとはもとの配列においてi,jを含まない四角形の領域の合計を出す



# pq = read_tuple(Q)



for _ in range(Q):

    p, q = read_ints()

    print((LR2d_accum[q + 1, q + 1] - LR2d_accum[q + 1, p] -

          LR2d_accum[p, q + 1] + LR2d_accum[p, p]))





'''

以下numpyを使わずに実装してみる

'''

# https://atcoder.jp/contests/abc106/tasks/abc106_d

# どうやったら高速に区間[p,q]に完全に入っている区間の数を取得できるか？

# p,qを二次元座標として捉えると電車1本の線は二次元平面上の1点として表せる

# このときp,qの区間に完全に入っている電車の本数というのは、x軸、y軸の両方において[p,q]となる四角形内にある電車の本数

# queryに高速に答えるために二次元累積和を構築する

import sys

read = sys.stdin.readline





def read_ints():

    return list(map(int, read().split()))





def read_tuple(H):

    '''

    H is number of rows

    '''

    ret = []

    for _ in range(H):

        ret.append(tuple(map(int, read().split())))

    return ret





import numpy as np



N, M, Q = read_ints()

LR = read_tuple(M)

pq = read_tuple(Q)



# numpy使わずに再実装 #入れるときはpythonのほうが速いので

LR2d = [[0] * (N + 1) for _ in range(N + 1)]

for L, R in LR:

    LR2d[L][R] += 1

LR2d = np.array(LR2d, np.int64)



LR2d_accum = np.zeros((N + 2, N + 2), np.int64)

LR2d_accum[1:, 1:] = LR2d.cumsum(axis=0).cumsum(axis=1)  # 1次元累積和同様半開区間で考える

# つまりインデックスi,jとはもとの配列においてi,jを含まない四角形の領域の合計を出す



# queryに答えていく

for p, q in pq:

    print((LR2d_accum[q + 1, q + 1] - LR2d_accum[q + 1, p] -

          LR2d_accum[p, q + 1] + LR2d_accum[p, p]))

# https://atcoder.jp/contests/abc106/tasks/abc106_d
# どうやったら高速に区間[p,q]に完全に入っている区間の数を取得できるか？
# p,qを二次元座標として捉えると電車1本の線は二次元平面上の1点として表せる
# このときp,qの区間に完全に入っている電車の本数というのは、x軸、y軸の両方において[p,q]となる四角形内にある電車の本数
# queryに高速に答えるために二次元累積和を構築する
import sys

read = sys.stdin.readline


def read_ints():
    return list(map(int, read().split()))


def read_tuple(H):
    """
    H is number of rows
    """
    ret = []
    for _ in range(H):
        ret.append(tuple(map(int, read().split())))
    return ret


import numpy as np

N, M, Q = read_ints()
# numpy使わずに再実装 #入れるときはpythonのほうが速いので
LR2d = [[0] * (N + 1) for _ in range(N + 1)]
for _ in range(M):
    L, R = read_ints()
    LR2d[L][R] += 1
LR2d = np.array(LR2d)
LR2d_accum = np.zeros((N + 2, N + 2), np.int64)
LR2d_accum[1:, 1:] = LR2d.cumsum(axis=0).cumsum(axis=1)  # 1次元累積和同様半開区間で考える
# つまりインデックスi,jとはもとの配列においてi,jを含まない四角形の領域の合計を出す
# pq = read_tuple(Q)
for _ in range(Q):
    p, q = read_ints()
    print(
        (
            LR2d_accum[q + 1, q + 1]
            - LR2d_accum[q + 1, p]
            - LR2d_accum[p, q + 1]
            + LR2d_accum[p, p]
        )
    )
"""
以下numpyを使わずに実装してみる
"""

# https://atcoder.jp/contests/abc106/tasks/abc106_d
# どうやったら高速に区間[p,q]に完全に入っている区間の数を取得できるか？
# p,qを二次元座標として捉えると電車1本の線は二次元平面上の1点として表せる
# このときp,qの区間に完全に入っている電車の本数というのは、x軸、y軸の両方において[p,q]となる四角形内にある電車の本数
# queryに高速に答えるために二次元累積和を構築する
import sys

read = sys.stdin.readline


def read_ints():
    return list(map(int, read().split()))


def read_tuple(H):
    """
    H is number of rows
    """
    ret = []
    for _ in range(H):
        ret.append(tuple(map(int, read().split())))
    return ret


import numpy as np

N, M, Q = read_ints()
LR = read_tuple(M)
pq = read_tuple(Q)
# numpy使わずに再実装 #入れるときはpythonのほうが速いので
LR2d = [[0] * (N + 1) for _ in range(N + 1)]
for L, R in LR:
    LR2d[L][R] += 1
LR2d = np.array(LR2d, np.int64)
LR2d_accum = np.zeros((N + 2, N + 2), np.int64)
LR2d_accum[1:, 1:] = LR2d.cumsum(axis=0).cumsum(axis=1)  # 1次元累積和同様半開区間で考える
# つまりインデックスi,jとはもとの配列においてi,jを含まない四角形の領域の合計を出す
# queryに答えていく
for p, q in pq:
    print(
        (
            LR2d_accum[q + 1, q + 1]
            - LR2d_accum[q + 1, p]
            - LR2d_accum[p, q + 1]
            + LR2d_accum[p, p]
        )
    )

+LR = read_tuple(M) +pq = read_tuple(Q) -for _ in range(M): -    L, R = read_ints() +for L, R in LR: -LR2d = np.array(LR2d) +LR2d = np.array(LR2d, np.int64) -# pq = read_tuple(Q) -for _ in range(Q): -    p, q = read_ints() +# queryに答えていく +for p, q in pq: -""" -以下numpyを使わずに実装してみる -"""