N, M = gets.split.map(&:to_i) A = gets.split.map(&:to_i) E = Hash.new { |h, k| h[k] = [] } M.times do u, v = gets.split.map(&:to_i) E[u] << v if A[u - 1] < A[v - 1] E[v] << u if A[u - 1] > A[v - 1] end light = Array.new(N + 1, false) K = gets.to_i B = gets.split.map(&:to_i) B.each do |b| light[b] = true end ans = [] v_list = [*1..N].sort_by { |v| A[v - 1] } v_list.each do |v| next if not light[v] light[v] = true ans << v E[v].each do |u| light[u] ^= true end end puts ans.size puts ans