#include <stdio.h>
#include <unistd.h>

int map[21][21];
void debugPrint(int Y, int X, int n, char D, int M, int m) {
  int x,y;
  printf("Count:%d ----- %c:%d(%d)\n",n,D,M,m);
  for(y=20;y>=0;y--) {
    for(x=0;x<=20;x++) {
      if ((Y==y)&&(X==x)) printf("* ");
      else
        printf("%c ", (map[y][x])? 'x':'.');
    }
    printf("\n");
  }
}

int main() {
  while(1) {
    int N,n,M,m;
    int x,y;

    scanf("%d",&N);
    if (N==0) break;

    for(y=20;y>=0;y--) {
      for(x=0;x<=20;x++) {
        map[y][x]=0;
      }
    }

    for(n=0;n<N;n++) {
      int X,Y;
      scanf("%d %d",&X,&Y);
      map[Y][X]=1;
    }

    scanf("%d",&M);
   y = 10; x = 10; n = N;
    for(m=0;m<M;m++) {

      char D;
      int  E,e;
      scanf("%c %d\n",&D,&E);

      if(!n) continue;
      for(e=0;e<E;e++) {
        if      (D=='N') y++;
        else if (D=='S') y--;
        else if (D=='E') x++;
        else if (D=='W') x--;
        if(map[y][x]) {
          n--;
          map[y][x]=0;
        }
      }
    }
    printf("%s\n", (n)? "No": "Yes");
  }

  return 0;
}