#include<stdio.h>

int main(void)
{
	unsigned long long int a, b, c, k, tab;
	int sum;
	char s[100000][3];
	char N[10000];
	char X, Y;
	int i;
	int check;

	scanf("%lld%lld%lld%lld", &k, &a, &b, &c);

	if ((a > 0) && (b > 0) && (c > 0)) {
		check = 1;
	}

	if ((a == 0) && (b == 0) && (c == 0)) {
		printf("No");
		return 0;
	}

	/*
	if (1 == a + b + c) {
		for (i = 0; i < k; i++) {
			scanf("%s", s[i]);
			if (0 == strcmp(s[i], "AB")) {
				if (a == b) {
					printf("No");
					return 0;
				}
				tab = a;
				a = b;
				b = tab;
			}
			if (0 == strcmp(s[i], "BC")) {
				if (c == b) {
					printf("No");
					return 0;
				}
				tab = b;
				b = c;
				c = tab;
			}
			if (0 == strcmp(s[i], "AC")) {
				if (a == c) {
					printf("No");
					return 0;
				}
				tab = a;
				a = c;
				c = tab;
			}
		}
	}
	*/

	for (i = 0; i < k; i++) {
		scanf("%s", s[i]);
		if (0 == strcmp(s[i], "AB")) {
			if ((a == 0) && (b == 0)) {
				printf("No");
				return 0;
			}
			if (a > b) {
				N[i] = 'A';
				a--; 
				b++;
			}
			else {
				N[i] = 'B';
				a++;
				b--;
			}
		}
		if (0 == strcmp(s[i], "AC")) {
			if ((a == 0) && (c == 0)) {
				printf("No");
				return 0;
			}
			if (a > c) {
				N[i] = 'A';
				a--;
				c++;
			}
			else {
				N[i] = 'C';
				a++;
				c--;
			}
		}
		if (0 == strcmp(s[i], "BC")) {
			if ((c == 0) && (b == 0)) {
				printf("No");
				return 0;
			}
			if (c > b) {
				N[i] = 'C';
				c--;
				b++;
			}
			else {
				N[i] = 'B';
				c++;
				b--;
			}
		}
	}
	
	printf("Yes\n");

	for (i = 0; i < k; i++) {
		printf("%c\n", N[i]);
	}

	return 0;
}