N, M, X = gets.split(" ").map{|s| s.to_i} A = Hash.new {|hash, key| hash[key] = Array.new} N.times { a, b = gets.split(" ").map{|s| s.to_i} A[b] << a } k = gets.to_i c = gets.split(" ").map{|s| s.to_i} list = [] A.values.each {|v| v.sort!.reverse! v[0] += X list += v } list.sort!.reverse! cnt = [0] 0.upto(c.max-1) {|i| cnt << cnt[-1] + list[i] } total = 0 c.each {|i| total += cnt[i] } puts total