import std.stdio, std.string, std.conv, std.algorithm;
import std.range, std.array, std.container, std.math, std.typecons;

immutable int max = 2 * 10^^5 + 10;

int n, k, q;
//int[] l, r;

void main() {
    scan(n, k, q);
    
    auto adm = new int[](max);

    int li, ri;

    foreach (i ; 0 .. n) {
        scan(li, ri);
        adm[li]++;
        adm[ri+1]--;
    }

    iota(max - 1).each!(i => adm[i + 1] += adm[i]);

    debug {
        stderr.writeln("adm:", adm[0 .. 120]);
    }

    adm = adm.map!(a => (a >= k).to!int).array;

    debug {
        stderr.writeln("adm:", adm[0 .. 120]);
    }

    iota(max - 1).each!(i => adm[i + 1] += adm[i]);

    debug {
        stderr.writeln("adm:", adm[0 .. 150]);
    }

    int ai, bi, ans;

    foreach (i ; 0 .. q) {
        scan(ai, bi);
        ans = adm[bi] - adm[ai - 1];
        ans.writeln;
    }
}

void scan(T...)(ref T args) {
    auto line = readln.split;
    foreach (ref arg; args) {
        arg = line.front.to!(typeof(arg));
        line.popFront;
    }
    assert(line.empty);
}
