#include<stdio.h>
#include<string.h>

typedef struct{
  int x;
  int y;
}dir;

int map[21][21];
dir ds[4]={{0,1},{-1,0},{0,-1},{1,0}};

int d2n(char dir){
  return dir=='N'?0:dir=='W'?1:dir=='S'?2:3;
}

int main(){
  int x,y,n,gn,i,st,step,count,j;
  char dir,str[29],*s;
  st=0;
  do{
    fgets(str,29,stdin);
    gn=atoi(str);
    if(gn==0) break;
    st++;
    for(i=0;i<gn;i++){
      fgets(str,29,stdin);
      s=strchr(str,' ');
      *s='\0';
      x=atoi(str);
      y=atoi(s+1);
      map[y][x]=st;
    }
    x=y=10;
    count=(map[y][x]==st)?1:0;
    fgets(str,29,stdin);
    n=atoi(str);
    for(i=0;i<n;i++){
      fgets(str,29,stdin);
      dir=str[0];
      step=atoi(str+2);
      for(j=0;j<step;j++){
	x+=ds[d2n(dir)].x;
	y+=ds[d2n(dir)].y;
	if(map[y][x]==st){
	  count++;
	  map[y][x]=0;
	}
      }
    }
    printf("%s\n",(count==gn)?"YES":"NO");
  }while(1);
  return 0;
}