#include <bits/stdc++.h>

using namespace std;

int n, m, q, a[51][3], b[51], x, y;

bool sortbysec(const pair<int,int> &a, const pair<int,int> &b) 
{ 
    return (a.second > b.second); 
} 

void solve() {
    cin >> n >> m >> q;
    vector<pair<int, int> > t;
    for(int i=1; i<=n; i++) {
        cin >> a[i][1] >> a[i][2];
        t.push_back(make_pair(a[i][1], a[i][2]));
    }
    sort(t.begin(), t.end(), sortbysec);
    for(int i=1; i<=m; i++) 
        cin >> b[i];
    for(int k=1; k<=q; k++) {
        
        cin >> x >> y;
        vector<int> v;
        long long ans = 0;
        for(int i=1; i<=m; i++) {
            if(i<x || i>y) v.push_back(b[i]);
        }
        sort(v.begin(), v.end());
        if(v.empty()) cout << 0 << '\n';
        else {
            for(auto z : t) {
                for(int j=0; j<v.size(); j++) {
                    if(z.first <= v[j]) {
                        ans += z.second;
                        v.erase( v.begin() + j);
                        break;
                    }
                    
                }
            }
            cout << ans << '\n';
            v.clear();
        }
    }
}

int main() {
    solve();
    return 0;
}
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>

using namespace std;

#define Fast_IO ios::sync_with_stdio(false) ,cin.tie(0) ,cout.tie(0)
int main()
{
    Fast_IO;
    int n, k, x, y, res = 0;
    cin >> n >> k;
    for (int i=1; i<=n; i++)
    {
        cin >> x >> y;
        res += (x*y);
        if (res > k*100)
            return cout << i, 0;
    }
    cout << -1;
    return 0;
}
