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

void main() {
	alias Section = Tuple!(int, "l", int, "r");
	auto data = readln.split, N = data[0].to!int, M = data[1].to!int, Q = data[2].to!int;
	
	Section[] train_, city;
	foreach (i; 0 .. M) {
		data = readln.split, train_ ~= Section(data[0].to!int, data[1].to!int);
	}
	auto train = sort!("a.l < b.l")(train_);
	foreach (j; 0 .. Q) {
		data = readln.split, city ~= Section(data[0].to!int, data[1].to!int);
	}
	
	foreach (j; 0 .. Q) {
		// p[j] <= L  (<=> p[j]-1 < L)
		int count;
		auto can = train.upperBound( Section(city[j].l-1,0) );
		can.each!( x =>  x.r<=city[j].r ? (++count) : 0 );
		writeln(count);
	}
	

}