Problem: Vasya has a multiset s consisting of n integer numbers. Vasya calls some number x nice if it appears in the multiset exactly once. For example, multiset \{1, 1, 2, 3, 3, 3, 4\} contains nice numbers 2 and 4.

Vasya wants to split multiset s into two multisets a and b (one of which may be empty) in such a way that the quantity of nice numbers in multiset a would be the same as the quantity of nice numbers in multiset b (the quantity of numbers to appear exactly once in multiset a and the quantity of numbers to appear exactly once in multiset b).

Input

The first line contains a single integer n~(2 ≤ n ≤ 100).

The second line contains n integers s_1, s_2, ... s_n~(1 ≤ s_i ≤ 100) — the multiset s.

Output

If there exists no split of s to satisfy the given requirements, then print "NO" in the first line.

Otherwise print "YES" in the first line.

The second line should contain a string, consisting of n characters. i-th character should be equal to 'A' if the i-th element of multiset s goes to multiset a and 'B' if if the i-th element of multiset s goes to multiset b. Elements are numbered from 1 to n in the order they are given in the input.

If there exist multiple solutions, then print any of them.

Examples

Input

4
3 5 7 1


Output

YES
BABA


Input

3
3 5 1


Output

NO

Solution (in PYTHON):

Solution:
'''input
5
1 1 1 1 5



'''

from collections import defaultdict as df
from bisect import bisect_left as bl 
import sys

n=input()
C=df(int)
A=[int(x) for x in raw_input().split()]

for i in A:
	C[i]+=1
c=0
for i in A:
	if C[i]==1:
		c+=1
st=""
if c&1==0:
	s=0

	for i in range(n):
		if C[A[i]]==1:
			if s<c/2:
				st+="A"
			else:
				st+="B"
			s+=1

		else:
			st+="B"
	print "YES"
	print st
else:
	default="A"
	go=True
	for i in A:
		if C[i]>2:
			go=False

	if go:
		print "NO"
	else:
		s=0
		for i in range(n):
			
			if C[A[i]]>2:
				C[A[i]]-=1
				A[i]=999999999999999
				
				if s<(c+1)/2:
					default="B"
				C[999999999999999]=1
				c+=1
				break
			elif C[A[i]]==1:
				s+=1
		s=0

		for i in range(n):
			if C[A[i]]==1:
				if s<c/2:
					st+="A"
				else:
					st+="B"
				s+=1

			else:

				st+=default
		print "YES"
		print st