#include #define rep(i, l, r) for (int i = (l); i < (r); i++) using namespace std; typedef long long ll; int main() { int N, M, X, K; cin >> N >> M >> X; vector A(N), B(N); rep(i, 0, N) cin >> A[i] >> B[i]; cin >> K; vector C(K); rep(i, 0, K) cin >> C[i]; vector> D(M); rep(i, 0, N) D[B[i] - 1].push_back(A[i]); rep(i, 0, M) sort(D[i].begin(), D[i].end()); rep(i, 0, M) if (D[i].size() > 0) D[i].back() += X; vector E(0), S(N + 1, 0); rep(i, 0, M) { rep(j, 0, D[i].size()) { E.push_back(D[i][j]); } } sort(E.begin(), E.end()); rep(i, 0, N) S[i + 1] = S[i] + E[N - 1 - i]; ll ans = 0; rep(i, 0, K) ans += S[C[i]]; cout << ans << endl; }