테트리스 알파벳

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

문제

테트리스는 NN개의 행과 2020개의 열로 이루어진 우물(well)에서 진행된다. 조각(figure)들이 한 번에 하나씩 우물 안으로 곧게 아래로 떨어지며, 각 조각은 상하좌우로 변을 맞대어 이어진 칸들의 집합이다. 조각이 떨어지면, 그 조각의 칸 중 하나가 바닥에 닿거나 이미 채워진 칸 위에 놓일 때까지 계속 내려간다.

모든 조각이 놓인 뒤, 각 조각에는 A부터 Z까지 서로 다른 대문자가 하나씩 붙는다. 우물의 최종 상태가 주어질 때, 조각들이 떨어졌을 수 있는 순서를 하나 복원하여라.

어떤 조각이 가장 마지막에 놓인 조각이 될 수 있으려면, 다른 어떤 조각도 통과하지 않고 우물 밖으로 곧게 위로 들어 올릴 수 있어야 한다. 즉, 같은 열에서 그 조각의 어떤 칸 바로 위에 다른 조각의 칸이 하나도 없어야 한다. 이런 방식으로 마지막 조각부터 하나씩 제거해 나가면 올바른 낙하 순서를 얻을 수 있다.

입력

첫째 줄에 행의 개수를 나타내는 정수 NN (1N501 \le N \le 50)이 주어진다.

다음 NN개의 줄에는 각각 정확히 2020개의 문자가 주어진다. 각 문자는 조각에 속한 칸을 나타내는 A부터 Z까지의 대문자이거나, 빈 칸을 나타내는 마침표 .(ASCII 4646)이다.

출력

조각들이 떨어진 순서대로 글자들을 한 줄에 출력한다. 가능한 순서가 여러 가지라면 사전순으로 가장 앞서는 것을 출력한다. 입력은 적어도 하나의 올바른 순서가 존재함을 보장한다.