#include<algorithm>
#include<cstdio>
#include<iostream>
#include<cstdlib>
#define lowbit(x) ((x)&(-(x)))
#define MAXM 200010
#define MAXN 510
using namespace std;
int c[MAXN][MAXN];
int query(int x,int y)
{
	int f=0;
	while(x>0)
	{
		int tmp=y;
		while(tmp>0)
		{
			f+=c[x][tmp];
			tmp-=lowbit(tmp);
		}
		x-=lowbit(x);
	}
	return f;
}
void modify(int x,int y,int v)
{
	while(x<MAXN)
	{
		int tmp=y;
		while(tmp<MAXN)
		{
			c[x][tmp]+=v;
			tmp+=lowbit(tmp);
		}
		x+=lowbit(x);
	}
}
struct Train
{
	int l,r;
	int num;
}SA[MAXM];
bool operator<(Train a ,Train b)
{
	if(a.r==b.r)return a.l<b.l;
	return a.r<b.r;
}
int ans[MAXN][MAXN];
inline void change(int x,int y,int x1,int y1,int v)
{
	modify(x,y,v);
	modify(x1+1,y,-v);
	modify(x,y1+1,-v);
	modify(x1+1,y1+1,v);
}
int main()
{
	int n,m,Q;
	scanf("%d%d%d",&n,&m,&Q);
	for(int i=1;i<=m;i++)
	{
		scanf("%d%d",&SA[i].l,&SA[i].r);
		change(1,SA[i].r,SA[i].l,n,1);
	}
	while(Q--)
	{
		int q1,q2;
		scanf("%d%d",&q1,&q2);
		printf("%d\n",query(q1,q2));
	}
	return 0;
}