// ░░░░░░░░( •̪●)░░░░░░░░░░░░░░░░░░░░░░░░
// ░░░░░░███████ ]▄▄▄▄▄▄▄▄▃░░░▃░░░░ ▃░
// ▂▄▅█████████▅▄▃▂░░░░░░░░░░░░░░░░░
// [███████████████████].░░░░░░░░░░░░░░
// ◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤...░░░░░░░░░░░░

//PointBlank's code (⌐■_■)

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
 
ll power(ll x, ll y); 
#define repp(I, A, B) for(int I = A; I <= B; I++)
#define rep(I, A, B) for(int I = A; I < B; I++)
#define rrep(I, B, A) for(int I = B; I >= A; I--)
#define pb emplace_back
#define ff first
#define ss second
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define LB lower_bound
#define UB upper_bound
#define MP make_pair
#define mem(A, B) memset(A, B, sizeof(A));
#define mem0(A) memset(A, 0, sizeof(A));
#define quickio ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define debug(this) cerr<<"> "<<#this<<" : "<<this<<"\n"
#define bitcount(n) __builtin_popcountll(n)
#define in_edges(M) repp(I, 1, M){int A, B; cin >> A >> B; v[A].pb(B), v[B].pb(A);}
#define in_edges2(M) repp(I, 1, M){int A, B; cin >> A >> B; v[A].pb(B);}
#define endl "\n"

const ll MOD = 1000000007;

vector<int> en[505];
int n, m, q;
 
int main() //PointBlank's code ¯\_(ツ)_/¯
{
    quickio
    cin >> n >> m >> q;
    repp(i, 1, m){
        int l, r;
        cin >> l >> r;
        en[l].pb(r);
    }

    repp(i, 0, 500) sort(all(en[i]));

    while(q--){
        int l, r;
        cin >> l >> r;
        ll res = 0;
        repp(i, l, r) res += UB(all(en[i]), r) - en[i].begin();
        cout << res << endl;
    }
}

ll power(ll x, ll y)
{ 
    ll res = 1; x %= MOD;
    while(y > 0){if(y & 1) res = (res*x) % MOD; y = y>>1, x = (x*x) % MOD;} 
    return res; 
}
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)
using namespace std;
using ll = int64_t;
using pint = pair<int, int>;

int main()
{
    int n, m, q;
    cin >> n >> m >> q;

    vector<vector<int>> table(n + 1, vector<int>(n + 1, 0));
    while(m--)
    {
        int l,r;
        cin >> l >> r;
        table[l][r]++;
    }
    rep(i, n) rep(j, n) table[i + 1][j + 1] += table[i + 1][j] + table[i][j + 1] - table[i][j];

    while (q--)
    {
        int s, t;
        cin >> s >> t;

        cout << table[t][t] - table[s - 1][t] - table[t][s - 1] + table[s - 1][s - 1] << endl;
    }
}