#include <stdio.h>

char map[21][21];

int main(void) {
	int hoseki_num;
	int hoseki_x,hoseki_y;
	int order_num;
	char direction[4];
	int movement;
	int robot_x,robot_y;
	int i,j;
	int ok;
	while(1) {
		scanf("%d",&hoseki_num);
		if(hoseki_num==0)break;
		for(i=0;i<=20;i++) {
			for(j=0;j<=20;j++)map[i][j]=0;
		}
		for(i=0;i<hoseki_num;i++) {
			scanf("%d%d",&hoseki_x,&hoseki_y);
			map[hoseki_y][hoseki_x]=1;
		}
		scanf("%d",&order_num);
		robot_x=robot_y=10;
		map[10][10]=0;
		for(i=0;i<order_num;i++) {
			scanf("%s%d",direction,&movement);
			switch(direction[0]) {
				case 'N':
					for(j=0;j<movement;j++,robot_y++) {
						map[robot_y][robot_x]=0;
					}
					break;
				case 'E':
					for(j=0;j<movement;j++,robot_x++) {
						map[robot_y][robot_x]=0;
					}
					break;
				case 'S':
					for(j=0;j<movement;j++,robot_y--) {
						map[robot_y][robot_x]=0;
					}
					break;
				case 'W':
					for(j=0;j<movement;j++,robot_x--) {
						map[robot_y][robot_x]=0;
					}
					break;
			}
			map[robot_y][robot_x]=0;
		}
		ok=1;
		for(i=0;i<=20;i++) {
			for(j=0;j<=20;j++) {
				if(map[i][j])ok=0;
			}
		}
		puts(ok?"Yes":"No");
	}
	return 0;
}