#include <bits/stdc++.h>
using namespace std;

#define fastio                  ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define input_output            freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); 

template <typename Arg1>
void prn(Arg1&& arg1) { cout<<arg1<<"\n";}
template <typename Arg1, typename... Args>
void prn(Arg1&& arg1, Args&&... args) { cout<<arg1<<" "; prn(args...); }

template <typename Arg1>
void prs(Arg1&& arg1) { cout<<arg1<<" ";}
template <typename Arg1, typename... Args>
void prs(Arg1&& arg1, Args&&... args) { cout<<arg1<<" "; prs(args...); }

template <typename Arg1>
void read(Arg1&& arg1) { cin>>arg1; }
template <typename Arg1, typename... Args>
void read(Arg1&& arg1, Args&&... args) { cin>>arg1; read(args...); }

#define int                     long long
#define all(ds)                 ds.begin(), ds.end()
#define uniq(v)                 (v).erase(unique(all(v)),(v).end())
#define gcd(x,y)                __gcd(x,y)
#define rep(i,a,b)              for(int i=a;i<b;i++)
#define precise(x)              cout<<fixed<<setprecision(x)
#define endl                    "\n"

const long long INF = 1e18;
const int32_t MOD = 1e9+7;
const int N = 1e5+5;

int n, m, k, q, r, l, x, y, z;
int a[N], b[N], c[N];
string s, t;
int ans = 0;

void solve(){
    read(n,m,q);
    pair<int, int> a[n]; // val, wt
    rep(i,0,n){
        read(x,y);
        a[i] = {y,x};
    }
    sort(a, a+n);
    reverse(a, a+n);

    int c[m];
    rep(i,0,m){
        read(c[i]);
    }
    

    rep(i,0,q){
        read(l,r);
        l--, r--;
        vector<int>v;
        for(int i = 0; i < m; ++i){
            if(i >= l && i <= r) continue;
            v.push_back(c[i]);
        }
        sort(all(v));
        int ans = 0;
        for(int i = 0; i < n; ++i){
            int val = a[i].first, wt = a[i].second;
            for(int i = 0; i < v.size(); ++i){
                if(v[i] == -1) continue;
                if(wt <= v[i]){
                    ans += val;
                    v[i] = -1;
                    break;
                }
            }
        }
        prn(ans);
    }
}

signed main()
{
#ifndef ONLINE_JUDGE  
    input_output  
#else   
    fastio
#endif

#ifdef SIEVE
    sieve();
#endif

#ifdef NCR
    init();
#endif

    int t = 1;
    // cin>>t;
    while(t--){
        solve();
    }

    return 0;
}
#include <iostream>
using namespace std;
typedef long long ll;
const int maxn = 1e6+10,mod = 1e9+7;
int a,b,x,y,f[maxn][2];
int main() {
	cin >> a >> b >> x >> y;
	f[a<b?a:b][a<b?0:1] = 0;
	f[a<b?a:b][a<b?1:0] = x;
	for(int i = min(a,b)+1; i <= max(a,b); i++){
		f[i][0] = min(f[i-1][0]+y,f[i-1][1]+x);
		f[i][1] = min(f[i][0]+x,f[i-1][1]+y);
	}
	cout << f[a<b?b:a][a<b?1:0] << endl;
	return 0;
}
