#include #include #include using namespace std; int main() { cin.tie(nullptr), ios::sync_with_stdio(false); int N, M; int X; cin >> N >> M >> X; vector> genre2quals(M); for (int i = 0; i < N; ++i) { int a, b; cin >> a >> b; genre2quals[b - 1].push_back(a); } vector vals; for (auto &quals : genre2quals) { sort(quals.begin(), quals.end()); if (quals.empty()) continue; quals.back() += X; vals.insert(vals.end(), quals.begin(), quals.end()); } sort(vals.rbegin(), vals.rend()); vector nb_solver(N + 1); int K; cin >> K; while (K--) { int c; cin >> c; nb_solver[0]++; nb_solver[c]--; } long long ret = 0; for (int i = 0; i < N; i++) { ret += (long long)(vals[i]) * nb_solver[i]; nb_solver[i + 1] += nb_solver[i]; } cout << ret << '\n'; }