#include<stdio.h>

int field[20][20] = {0};

void move_robot(int M){
  int i, j, distance, robo_x = 10, robo_y = 10;
  char direction[10];
  
  for(i = 0; i < M; i++){
    scanf("%s %d", direction, &distance);
    switch(direction[0]){
    case 'N':
      for(j = 0; j <= distance; j++){
	field[robo_x][robo_y + j] = 0;
      }
      robo_y += distance;
      break;

    case 'S':

      for(j = 0; j <= distance; j++){
	field[robo_x][robo_y - j] = 0;
      }
      robo_y -= distance;
      break;

    case 'E':
      for(j = 0; j <= distance; j++){
	field[robo_x + j][robo_y] = 0;
      }
      robo_x += distance;
      break;

    case 'W':

      for(j = 0; j <= distance; j++){
	field[robo_x - j][robo_y] = 0;
      }
      robo_x -= distance;
      break;

    default:
      break;
    }
  }
  for(i = 0; i < 20; i++){
    for(j = 0; j < 20; j++){
      if(field[i][j] == 1){
	printf("No\n");
	return ;
      }
    }
  }
  
  printf("Yes\n");
  return ;
  
}

int main(void){
  int N, M, i, j, x, y;
  while(1){
    scanf("%d", &N);
    if(N == 0){
      break;
    }

    for(i = 0; i < 20; i++){
      for(j = 0; j < 20; j++){
	field[i][j] = 0;
      }
    }

    for(i = 0; i < N; i++){
      scanf("%d %d", &x, &y);
      field[x][y] = 1;
    }

    scanf("%d", &M);
    move_robot(M);
  }
  return 0;
}