
fun main(args:Array<String>):Unit {
    var n = readLine()!!.toInt()
    while (n != 0){
        val stage = Array(21){Array(21){false}}
        val robot = Robot()
        repeat(n){
            val (x, y) = readLine()!!.split(' ').map(String::toInt)
            stage[x][y] = true
        }
        repeat(readLine()!!.toInt()){
            val (dir, len) = readLine()!!.split(' ')
            val prev = robot.position
            when(dir){
                "N" -> robot.moveNorth(len.toInt())
                "S" -> robot.moveSouth(len.toInt())
                "E" -> robot.moveEast(len.toInt())
                else -> robot.moveWest(len.toInt())
            }
            val current = robot.position
            for (x in prev.x .. current.x) for (y in prev.y .. current.y) stage[x][y] = false
            for (x in current.x .. prev.x) for (y in current.y .. prev.y) stage[x][y] = false
        }
        println(if (stage.any{it.any{it}}) "No" else "Yes")
        n = readLine()!!.toInt()
    }
}
data class Point(val x:Int, val y:Int){
    operator fun plus(other:Point):Point = Point(x + other.x, y + other.y)
}
class Robot{
    private var mPoint:Point = Point(10, 10)
    val position:Point
        get() = mPoint
    fun moveNorth(length:Int):Unit {
        mPoint += Point(0, length)
    }
    fun moveSouth(length:Int):Unit {
        mPoint += Point(0, -length)
    }
    fun moveEast(length:Int):Unit {
        mPoint += Point(length, 0)
    }
    fun moveWest(length:Int):Unit {
        mPoint += Point(-length, 0)
    }
}
