#include <bits/stdc++.h>
#define ll long long int
#define db double
#define pb push_back
#define mpr make_pair
#define andl "\n"
#define f first
#define s second
#define mset(x,y) memset(x,y,sizeof(x))
#define fr(i,n) for(long long int i=0;i<n;i++)
#define trace(it,x) for(auto it = (x).begin(); it != (x).end(); it++)
#define mod 1000000007
#define fastio ios::sync_with_stdio (false); cin.tie (0); cout.tie (0);
#define runtime cerr<< '\n' << "Time elapsed :" << clock() * 1000.0 / CLOCKS_PER_SEC << " ms\n" ;
using namespace std;
 
// convert number to string to_string(x);
// convert string to number stoi();
 
// ll mulmod(ll x,ll y)
// {
//     return ((x%mod)*(y%mod))%mod;
// }
 
// ll binpow(ll x, ll y)
// {
//     ll z = 1;
//     while(y > 0)
//     {
//         if(y % 2 == 1)
//             z = mulmod(z, x);
//         x = mulmod(x, x);
//         y /= 2;
//     }
//     return z;
// }
 
// ll ncr(ll n,ll r)
// {
//     return mulmod(fact[n],binpow(mulmod(fact[n-r],fact[r]),mod-2));
// }
 
// ll pwr(ll n,ll m)
// {
//   if(n==1 || m==0)
//     return 1;
 
//   ll x=pwr(n,m/2);
//   if(m%2==0)
//     return x*x;
//   else
//     return n*x*x;
// }
 
// ll pwr(ll n,ll m,ll b)
// {
//   if(n==1 || m==0)
//     return 1;
 
//   ll x=pwr(n,m/2,b);
//   if(m%2==0)
//     return ((x%b)*(x%b))%b;
//   else
//     return ((n%b)*(((x%b)*(x%b))%b))%b;
// }
 
void solve()
{
  ll nbag,nbox,q;
  cin >> nbag >> nbox >> q;

  vector<pair<ll,ll>>bag,box;

  ll w,v;

  fr(i,nbag)
  {
    cin >> w >> v;
    bag.pb({v,w});
  }

  fr(i,nbox)
  {
    cin >> w ;
    box.pb({w,i});
  }

  ll l,r,ans;
  ll a[nbox];

  sort(bag.rbegin(),bag.rend());
  sort(box.begin(),box.end());

  fr(i,q)
  {
    cin >> l >> r;

    ans=0;

    fr(i,nbox)
    a[i]=0;

    fr(j,nbag)
    {
      fr(k,nbox)
      {
        if(box[k].s<l-1 || box[k].s>=r)
        {
          if(a[box[k].s]==0)
          {
            if(box[k].f>=bag[j].s)
            {
              a[box[k].s]=1;
              ans+=bag[j].f;
              break;
            }
          }
        }
      }
    }

    cout << ans << andl;
  }

  return ;
}
 
int main()
{
  fastio
  
  ll t=1;
  // cin >> t;
 
  while(t--)
    solve();
 
  runtime
}
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n,m,q;
	cin>>n>>m>>q;
	vector<pair<int,int>>v;
	vector<pair<int,int>>w;
	int a,b;
	for(int i=0;i<n;i++){
	    cin>>a>>b;
	    v.push_back(make_pair(b,a));
	    w.push_back(make_pair(b,a));
	}
	sort(v.rbegin(),v.rend());
	sort(w.rbegin(),w.rend());
	int arr[m];
	for(int i=0;i<m;i++){
	    cin>>arr[i];
	}
	//sort(arr,arr+m);
	int l,r;
	for(int i=1;i<=q;i++){
	    cin>>l>>r;
	    l--;
	    r--;
	    vector<int>vv;
	    for(int j=0;j<m;j++){
	        if(j>=l && j<=r){
	            continue;
	        }
	        vv.push_back(arr[j]);
	    }
	    sort(vv.begin(),vv.end());
	    for(int j=0;j<vv.size();j++){
	       // cout<<"#"<<vv[j]<<"\n";
	    }
	    vector<int>::iterator lower;
	    long long ans=0;
	    for(int j=0;j<v.size();j++){
	        if(v[j].first!=-1){
	            int r=v[j].second;
	       lower=lower_bound(vv.begin(),vv.end(),r);
	       if((lower - vv.begin() + 1)<=vv.size()){
	           ans=ans+v[j].first;
	           v[j].first=-1;
	           vv[lower-vv.begin()]=-1;
	           sort(vv.begin(),vv.end());
	       }
	        }
	    }
	    cout<<ans<<"\n";
	    for(int j=0;j<n;j++){
	        if(v[j].first==-1){
	            v[j].first=w[j].first;
	        }
	    }
	}
	return 0;
}