require 'set'
d_op = {'N' => [0, 1], 'E' => [1, 0], 'S' => [0, -1], 'W' => [-1, 0]}
until (n = gets.to_i) == 0
  targets = n.times.reduce(Set.new) {|s| s << gets.split(' ').map(&:to_i).to_a }
  pos = [10, 10]
  gets.to_i
    .times
    .lazy
    .map { gets.chomp.split(' ') }
    .each {|d, l|
      break if targets.empty?
      op = d_op[d]
      l.to_i.times {
        pos = pos.zip(op).map {|a| a.reduce(:+) }.to_a
        targets.delete pos
      }
    }
  puts targets.empty? ? 'Yes' : 'No'
end