#include <bits/stdc++.h>
using namespace std;
const int N = 1e7, R = 200000;
int size[N], adn[N], n, k, q;
vector<int> num;
void pushdown(int cur) {
  adn[cur * 2] += adn[cur];
  adn[cur * 2 + 1] += adn[cur];
  adn[cur] = 0;
}
void add(int cur, int ln, int rn, int l, int r) {
  if (l <= ln && r >= rn) {
    adn[cur]++;
    return;
  }
  int mid = (ln + rn) >> 1;
  pushdown(cur);
  if (l <= mid) add(cur * 2, ln, mid, l, min(mid, r));
  if (r > mid) add(cur * 2 + 1, mid + 1, rn, max(mid + 1, l), r);
}
void update(int cur, int ln, int rn) {
  if (ln == rn) {
    if (adn[cur] >= k)
      size[cur] = 1;
    else
      size[cur] = 0;
    return;
  }
  pushdown(cur);
  int mid = (ln + rn) >> 1;
  update(cur * 2, ln, mid);
  update(cur * 2 + 1, mid + 1, rn);
  size[cur] = size[cur * 2] + size[cur * 2 + 1];
}
void que(int cur, int ln, int rn, int l, int r, int& anss) {
  if (l <= ln && r >= rn) {
    anss += size[cur];
    return;
  }
  int mid = (ln + rn) >> 1;
  if (l <= mid) que(cur * 2, ln, mid, l, min(mid, r), anss);
  if (r > mid) que(cur * 2 + 1, mid + 1, rn, max(l, mid + 1), r, anss);
}
int main() {
  scanf("%d%d%d", &n, &k, &q);
  int l, r;
  for (int i = 0; i < n; i++) {
    scanf("%d%d", &l, &r);
    add(1, 1, R, l, r);
  }
  update(1, 1, R);
  for (int i = 0; i < q; i++) {
    int anss = 0;
    scanf("%d%d", &l, &r);
    que(1, 1, R, l, r, anss);
    printf("%d\n", anss);
  }
  return 0;
}
