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;
	
	int[500][500] train;
	int[500][500] row_sum;		// row_sum[l][r] = t_1r + ... + t_lr
	
	foreach (i; 0 .. M) {
		data = readln.split, train[data[0].to!int-1][data[1].to!int-1]++;
	}
	
	foreach (r; 0 .. 500) {
		int s;
		foreach (l; 0 .. 500) {
			s += train[l][r];
			row_sum[l][r] = s;
		}
	}
	
	int[] p, q;
	
	foreach (j; 0 .. Q) {
		data = readln.split;
		p ~= data[0].to!int-1, q ~= data[1].to!int-1;
	}
	
	foreach (j; 0 .. Q) {
		int ans;
		foreach (r; p[j] .. q[j]+1) {
			if (p[j]==0) { ans += row_sum[q[j]][r]; /*row_sum[q[j]][r].writeln;*/ }
			else { ans += (row_sum[q[j]][r] - row_sum[p[j]-1][r]); /*(row_sum[q[j]][r] - row_sum[p[j]-1][r]).writeln;*/ } 
		}
		writeln(ans);
	}
	
	
}