비 오는 날의 카드 늘어놓기

서로 다른 카드들이 주어질 때, 이웃한 두 카드가 같은 숫자나 같은 무늬를 가지도록 한 줄로 나열할 수 있는지 판정한다.

보통5그래프DFS면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

발터는 방학을 증조할아버지의 농장에서 보내고 있다. 비는 며칠째 그치지 않는다. 낡은 헛간의 다락에 앉아 먼지 쌓인 잡동사니를 헤집던 발터는 오래된 포커 카드 뭉치를 찾아냈다. 카드가 낡고 재미있어 보여서 발터는 한 장씩 바닥에 나란히 늘어놓기 시작했다. 그러다 늘어놓은 순서에 어떤 규칙이 있다는 것을 알아챘다. 이웃한 카드 여러 쌍이 숫자가 같거나 무늬가 같았다.

"괜찮은 퍼즐이 되겠네." 발터가 혼잣말을 했다. "이웃한 두 장이 항상 숫자나 무늬를 공유하도록 다시 늘어놓을 수 있을까? 그런데 이 뭉치는 카드가 다 있는 게 아니라서 늘어놓는 방법이 크게 줄어들 것 같은데."

발터가 찾은 카드가 주어진다. 카드를 모두 한 줄로 늘어놓아 이웃한 두 장이 항상 숫자가 같거나 무늬가 같게 만들 수 있는지 판정하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 한 줄이고, 그 줄에 뭉치의 카드가 모두 적혀 있다. 줄의 맨 앞은 카드의 개수 1L521 \le L \le 52 이고, 그 뒤에 카드 LL 장의 표기가 공백 하나로 구분되어 이어진다.

카드는 두 문자로 적는다. 첫 번째 문자는 숫자를 나타내고, A는 에이스, 2부터 9는 그 숫자, X는 10, J는 잭, Q는 퀸, K는 킹이다. 두 번째 문자는 무늬를 나타내고, C는 클로버, D는 다이아몬드, H는 하트, S는 스페이드이다.

한 테스트 케이스 안의 카드는 모두 서로 다르다. 테스트 케이스는 최대 100개이고, 입력은 파일이 끝나면 끝난다.

출력

각 테스트 케이스마다 한 줄을 출력한다. 조건에 맞게 늘어놓을 수 있으면 YES, 없으면 NO를 출력한다.