require 'set' N, M, X = gets.split.map(&:to_i) AB = N.times.map { gets.split.map(&:to_i) } K = gets.to_i C = gets.split.map(&:to_i) ab = AB.sort_by{|ab| -ab[0]} used = Set.new ans = ab.map{ |n| n[0] + (used.add?(n[1]) ? X : 0) }.sort_by{|x| -x} now = 0 ans2 = [0] + ans.map{ |x| now += x } p K.times.sum{|k| ans2[C[k]]}