작은 큐브러버
시간 제한1초메모리 제한512 MB
각 세 면에 색이 있는 여덟 조각이 주어질 때, 회전과 배치를 조정해 각 면이 한 가지 색인 2x2x2 큐브를 만들 수 있는지 판단합니다.
문제
작은 큐브러버는 작은 1×1×1 정육면체 조각 8개를 갖고 있었어요. 각 조각에는 색이 칠해진 스티커가 붙은 면이 세 개씩 있고, 그 세 면은 하나의 꼭짓점을 공유해요. 작은 큐브러버는 이 조각들을 조립해서, 각 면의 스티커 4장의 색은 모두 같고 서로 다른 면의 스티커 색은 모두 다른 2×2×2 큐브를 만들었어요. 작은 큐브러버는 이 작은 큐브를 아주 좋아했답니다.

그런데 어느 날 작은 큐베러버가 날아와 작은 큐브의 스티커를 뒤섞고, 큐브를 8개의 조각으로 분해해 버렸어요. 스티커를 뒤섞었다는 것은 임의의 두 스티커를 떼어낸 뒤 위치를 바꿔 붙이는 일을 충분히 많이 반복했다는 뜻이에요.
작은 큐브러버는 너무 슬펐지만 용기를 내어 작은 큐베러버를 삐-하고 8개의 조각을 되찾았어요. 작은 큐브러버는 이 조각들을 다시 조립해 작은 큐브를 만들고 싶어 해요. 작은 큐브러버를 도와주세요!
입력
8개의 줄에 걸쳐 각 조각이 주어집니다. 각 조각은 스티커가 붙은 세 면이 모두 보이도록 놓았을 때, 윗면, 왼쪽 면, 오른쪽 면 순서로 읽은 각 스티커의 색입니다. 각 색은 B(blue), G(green), O(orange), R(red), W(white), Y(yellow) 중 하나의 알파벳으로 표현됩니다. 예를 들어 위 이미지의 중앙에 있는 조각은 Y B R로 주어집니다.
입력에서 각 알파벳은 같은 개수만큼 등장하는 것이 보장됩니다.
출력
조각을 조립해서 조건을 만족하는 2×2×2 큐브를 만들 수 있으면 YES, 만들 수 없으면 NO를 출력합니다.
힌트
첫 번째 예시의 조각으로는 아래와 같은 색 배치의 큐브를 만들 수 있습니다.
