큐브

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

여러 가지 모양의 단단한 조각들이 서로 맞물려 이루어진 큰 정육면체(큐브)를 생각해 보자. 조각들이 충분히 얽혀 있다면, 이들을 분리하는 유일한 방법은 일부 조각을 잘라 내는 것뿐일 수 있다. 우리는 다음과 같이 물을 수 있다. "이 큐브는 안정한가?" 즉, 어떤 조각도 변형하거나 자르지 않고서 큐브를 $2$개 이상의 덩어리로 분리하는 것이 물리적으로 불가능한가?

여러분의 프로그램은 이러한 여러 큐브에 대해 이 질문에 답해야 한다.

큐브를 이루는 조각들은 다음과 같이 주어진다. 큐브를 $n \times n \times n$개의 작은 정육면체로 이루어진 격자로 나누고, 각 작은 정육면체에 대문자 한 글자를 붙인다. 면을 맞대고 인접한 두 작은 정육면체는 같은 문자로 표시되어 있을 때, 그리고 그럴 때에 한해 하나로 붙어 있다. 예를 들어 첫 번째 테스트 케이스의 큐브는 $3$개의 단단한 조각으로 이루어져 있다.

입력

프로그램에는 최대 $10$개의 서로 다른 큐브의 명세가 주어진다. 각 명세의 처음 두 줄은 큐브의 크기 $n$ $(1 \le n \le 10)$과 빈 줄로 이루어진다. 이어지는 $n \times (n + 1)$개의 줄은 큐브의 $n$개 수평 층을 아래에서 위로 나타낸다. 각 층의 명세는 그 층에 있는 각 작은 정육면체의 문자를 나타내는 $n \times n$ 정사각형과, 그 뒤의 빈 줄 하나로 이루어진다. 입력에는 공백이 없다. 입력은 한 줄에 홀로 놓인 숫자 $0$으로 끝난다.

출력

주어진 각 큐브에 대해, 주어진 순서대로 그 큐브가 안정하면 Yes를, 그렇지 않으면 No를 출력한다.