만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

끝말잇기

면접 대비

시간 제한1초메모리 제한1024 MB

요약
사전의 모든 단어를 한 줄로 이어서, 각 단어의 첫 글자가 앞 단어의 마지막 글자와 같도록 순서를 만들 수 있는지 판별합니다. 가능하면 그 순서를 출력합니다.
난이도

보통10점 중 4점

유형
그래프, DFS
정답자
아직 제출이 없습니다

문제

아이들이 끝말잇기 게임을 한다. 각 플레이어는 직전에 말한 단어의 마지막 글자로 시작하는 단어를 말해야 한다.

단어 사전이 주어진다. 사전에 있는 모든 단어를 정확히 한 번씩 사용해서 게임을 진행할 수 있는지 판단하라. 사전의 단어는 모두 서로 다르다. 단어에는 A부터 Z, a부터 z, 0부터 9까지의 문자만 쓰이며, 대문자와 소문자는 서로 다른 문자로 취급한다.

입력

첫 줄에 사전의 단어 수 NN이 주어진다 (2≤N≤10 0002 \le N \le 10\,000). 다음 NN개 줄에는 각각 단어가 하나씩 주어진다. 어떤 단어도 길이가 10자를 넘지 않는다.

출력

모든 단어를 규칙에 맞게 나열할 수 있으면 첫 줄에 JAH를 출력하고, 이어서 정확히 NN개 줄에 단어를 나열한 한 가지 순서를 출력한다. 각 단어는 직전 단어의 마지막 글자로 시작해야 한다. 나열할 수 없으면 EI를 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    7
    Kala
    aabits
    aju2
    234
    SALK
    sada
    anarhia
    
    예상 출력
    JAH
    SALK
    Kala
    anarhia
    aabits
    sada
    aju2
    234
    
  2. 예제 2

    입력
    3
    Abbb
    Baaa
    aaaB
    
    예상 출력
    EI