#abc166f. [abc166_f]Three Variables Game

[abc166_f]Three Variables Game

問題文

あるゲームでは 33 つの変数があり、それぞれ A,B,CA,B,C で表されます。

ゲームの進行と共に、あなたは NN 回の選択に迫られます。 それぞれの選択は文字列 sis_i によって示され、 sis_iAB のとき、AABB のどちらかに 11 を足しもう一方から 11 を引くこと、 AC のとき、AACC のどちらかに 11 を足しもう一方から 11 を引くこと、 BC のとき、BBCC のどちらかに 11 を足しもう一方から 11 を引くことを意味します。

いずれの選択の後にも、A,B,CA,B,C のいずれも負の値になってはいけません。

この条件を満たしつつ NN 回すべての選択を終えることが可能であるか判定し、可能であるならそのような選択方法をひとつ示してください。

制約

  • 1leqNleq1051 \\leq N \\leq 10^5
  • 0leqA,B,Cleq1090 \\leq A,B,C \\leq 10^9
  • N,A,B,CN, A, B, C は整数である。
  • sis_iAB, AC, BC のいずれか

入力

入力は以下の形式で標準入力から与えられる。

NN AA BB CC s1s_1 s2s_2 :: sNs_N

出力

条件を満たしつつ NN 個すべての選択を終えることが可能である場合は Yes を、そうでない場合は No を出力せよ。

加えて、前者の場合は続く NN 行に選択方法を示せ。i+1i+1 行目には ii 回目の選択で 11 を足す変数の名前 (A, B, C のいずれか) を出力せよ。


入力例 1

2 1 3 0
AB
AC

出力例 1

Yes
A
C

次のようにすることで 22 回すべての選択を終えることができます。

  • 11 回目の選択では、AA11 を足し BB から 11 を引く。AA の値が 22 に、BB の値が 22 に変化する。
  • 22 回目の選択では、CC11 を足し AA から 11 を引く。CC の値が 11 に、AA の値が 11 に変化する。

入力例 2

3 1 0 0
AB
BC
AB

出力例 2

No

入力例 3

1 0 9 0
AC

出力例 3

No

入力例 4

8 6 9 1
AC
BC
AB
BC
AC
BC
AB
AB

出力例 4

Yes
C
B
B
C
C
B
A
A