import std.stdio;
import std.string;
import std.conv;
import std.array;
import std.range;
import std.algorithm;

void main() {
    string lineInput;

    while ((lineInput = readln.chomp) != "0") {
        bool[21][21] planet;
        int[] potion = [10, 10];
        int count = 0;

        int N = lineInput.to!int;
        foreach (i; 0..N) {
            auto temp = readln.chomp.split(" ").map!(to!(uint));
            planet[temp[0]][temp[1]] = true;
        }

        int M = readln.chomp.to!int;
        foreach (i; 0..M) {
            string[] command = readln.chomp.split(" ");

            foreach(j; 0..command[1].to!int) {
                switch (command[0]) {
                    case "E": potion[0]++; break;
                    case "W": potion[0]--; break;
                    case "N": potion[1]++; break;
                    case "S": potion[1]--; break;
                    default: potion[0] += 0; potion[1] += 0;
                }

                if (planet[potion[0]][potion[1]]) {
                    count++;
                }
            }
        }

        if ((N - count) == 0) {
            writeln("YES");
        } else {
            writeln("NO");
        }
    }
}