#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;
using ll = long long;
using ld = long double;

#define all(x)  x.begin(),x.end()
#define v(x) vector<x>
#define nl '\n'
#define fxd(x) fixed << setprecision(x)
template<class t> using ordered_set = tree<t, null_type, less<t>, rb_tree_tag, tree_order_statistics_node_update>;
template<class t> using ordered_multiset = tree<t, null_type, less_equal<t>, rb_tree_tag, tree_order_statistics_node_update>;


int main()
{
    ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
    int n , k ,q; cin >> n >> k >> q;
    v(ll) prefsum(10+2e5,0);
    for (int i = 0; i < n; i++)
    {
        int l , r; cin >> l >> r;
        prefsum[l]++;
        prefsum[r+1]--;
    }
    for (int i = 1; i < prefsum.size(); i++)
    {
        prefsum[i] = prefsum[i]+prefsum[i-1];
    }
    for (int i = 1; i < prefsum.size(); i++)
    {
        prefsum[i] = (prefsum[i]>=k);
    }
    for (int i = 1; i < prefsum.size(); i++)
    {
        prefsum[i] = prefsum[i]+prefsum[i-1];
    }

    while (q--)
    {
        int a , b; cin >> a >> b;
        cout << prefsum[b] - prefsum[a-1] << nl;
    }
}