class Position
  attr_reader :x, :y

  def initialize(x, y)
    @x = x
    @y = y
  end

  def +(other)
    @x += other.x
    @y += other.y
    self
  end
end

DIRECTIONS = {
  'N' => Position.new(0, 1),
  'E' => Position.new(1, 0),
  'S' => Position.new(0, -1),
  'W' => Position.new(-1, 0),
}

class PlanetField
  def initialize()
    @field = Array.new(21).map{Array.new(21,false)}
  end

  def put_gem(position)
    @field[position.x][position.y] = true
  end

  def pick_gem(position)
    @field[position.x][position.y] = false
  end

  def gem_remaining()
    @field.flatten.count(true)
  end
end

class Robot
  attr_reader :position

  def initialize(position)
    @position = position
  end

  def move(position)
    @position = @position + position
  end
end

while (gems = gets.to_i) != 0
  field = PlanetField.new
  robot = Robot.new(Position.new(10, 10))

  gems.times {
    field.put_gem(Position.new(*(gets.split.map &:to_i)))
  }

  orders = gets.to_i
  orders.times {
    direction, amount = gets.split
    amount.to_i.times {
      robot.move(DIRECTIONS[direction])
      field.pick_gem(robot.position)
    }
  }

  puts(field.gem_remaining == 0 ? 'Yes' : 'No')
end

