from collections import deque n,m,x = map(int,input().split()) lis = [] for _ in range(n): ab = list(map(int,input().split())) lis.append(ab) u = int(input()) t = list(map(int,input().split())) t_max = max(t) dp = [-10**18] * (t_max+1) dp[0] = 0 already_ind = set() subject = set() for i in range(1,t_max+1): for j in range(n): if(j not in already_ind): if(lis[j][1] not in subject): if(dp[i] < dp[i-1] + lis[j][0] + x): dp[i] = dp[i-1] + lis[j][0] + x max_ind = j else: if(dp[i] < dp[i-1] + lis[j][0]): dp[i] = dp[i-1] + lis[j][0] max_ind = j already_ind.add(max_ind) subject.add(lis[max_ind][1]) ans = 0 for i in range(u): ans += dp[t[i]] print(ans)