using System;
using System.Linq;
using System.Collections.Generic;

public class Hello{
    public static void Main(){
        // Here your code !
        Planet ThePlanet = new Planet();
        while(true){
            int GemNum = int.Parse(Console.ReadLine());
            if(GemNum == 0) break;
            
            ThePlanet.Init(GemNum);
            if(GemNum == ThePlanet.Solve()) Console.WriteLine("Yes");
            else Console.WriteLine("No");
        }
    }
}

public class Planet{
    private bool[,] Map = new bool[Consts.Y_SIZE,Consts.X_SIZE];
    private List<Command> Commands = new List<Command>();
    public void Init(int GemNum){
        // Map Init
        for(int y = 0; y < Consts.Y_SIZE; y++){
            for(int x = 0; x < Consts.X_SIZE; x++){
                Map[y,x] = false;
            }
        }
        
        // Gem Input to Map
        for(int i = 0; i < GemNum; i++){
            string[] GemX_Y = Console.ReadLine().Split(' ');
            Map[int.Parse(GemX_Y[1]),int.Parse(GemX_Y[0])] = true;
        }
        
        // Commands Init
        Commands.Clear();
        int CommandNum = int.Parse(Console.ReadLine());
        for(int i = 0; i < CommandNum; i++){
            string[] V_D = Console.ReadLine().Split(' ');
            Commands.Add(new Command());
            Commands[i].Init(V_D);
//Console.WriteLine(Commands[i].Vector + " " + Commands[i].Distance);
        }
    }
    
    public int Solve(){
        int BotX = Consts.InitBotX;
        int BotY = Consts.InitBotY;
        int dx = 0;
        int dy = 0;
        int CorrectedGemNum = 0;
//PrintMap();
        for(int i = 0; i < Commands.Count; i++){
//Console.WriteLine(" Goto:" + Commands[i].Vector + " Distance:" + Commands[i].Distance);
            switch(Commands[i].Vector){
                case "E":
                    dx = 1; dy = 0;
                    break;
                case "W":
                    dx = -1; dy = 0;
                    break;
                case "S":
                    dx = 0; dy = -1;
                    break;
                case "N":
                    dx = 0; dy = 1;
                    break;
                default:
                    break;
            }
            for(int d = 1; d <= Commands[i].Distance; d++){
                BotX += dx;
                BotY += dy;
                if(Map[BotY, BotX]){
                    Map[BotY, BotX] = false;
                    CorrectedGemNum++;
                }
//Console.WriteLine("Current Bot X:" + BotX + " Y:" + BotY);
            }
        }
        return CorrectedGemNum;
    }
    
    public void PrintMap(){
        for(int y = 0; y < Consts.Y_SIZE; y++){
            for(int x = 0; x < Consts.X_SIZE; x++){
                if(Map[y,x]) Console.Write("G ");
                else Console.Write("_ ");
            }
            Console.WriteLine();
        }
    }
    
}

public class Command{
    public string Vector { get; private set; }
    public int Distance { get; private set; }
    
    public void Init(string[] V_D){
        Vector = V_D[0];
        Distance = int.Parse(V_D[1]);
    }
}

public class Consts{
    public static readonly int X_SIZE = 21;
    public static readonly int Y_SIZE = 21;
    public static readonly int InitBotX = 10;
    public static readonly int InitBotY = 10;
}

Measured memory_bytes: 9176