#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 5;
const int MOD = 1e9 + 7;
int tree[maxn], a[maxn];
void Add(int pos) {
  for (int i = pos; i < maxn; i += i & -i) tree[i]++;
}
int getsum(int pos) {
  int res = 0;
  for (int i = pos; i >= 1; i -= i & -i) res += tree[i];
  return res;
}
int main() {
  int N, K, M;
  while (cin >> N >> K >> M) {
    memset(tree, 0, sizeof tree);
    memset(a, 0, sizeof a);
    for (int i = 1; i <= N; i++) {
      int L, R;
      scanf("%d%d", &L, &R);
      a[L]++, a[R + 1]--;
    }
    for (int i = 1; i <= maxn - 5; i++) {
      a[i] += a[i - 1];
      if (a[i] >= K) Add(i);
    }
    for (int i = 1; i <= M; i++) {
      int L, R;
      scanf("%d%d", &L, &R);
      cout << getsum(R) - getsum(L - 1) << endl;
    }
  }
}
