만드는 중입니다

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

아이들 줄 세우기

면접 대비

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

요약
친구 쌍이 주어질 때 모든 친구가 바로 옆에 서도록 아이들을 한 줄로 세우는 순서를 찾고, 없으면 그렇다고 출력합니다.
난이도

보통10점 중 4점

유형
그래프, 유니온 파인드, 구현
정답자
아직 제출이 없습니다

문제

소풍을 마친 뒤 선생님은 아이들을 모두 세워 인원을 세고 빠진 아이가 없는지 확인해야 한다. 아이들을 다뤄 본 사람이라면 이 일이 얼마나 어려운지 안다. 모든 아이는 친구 각각의 옆에 반드시 서 있어야 하며, 그렇지 않으면 곧 소란이 일어난다.

모든 아이를 만족시키는 순서를 하나 찾아라.

입력

첫 줄에는 공백으로 구분된 두 정수 NN과 MM이 주어진다. NN은 아이의 수, MM은 친구 쌍의 수이다 (1≤N≤1051 \le N \le 10^5, 1≤M≤3⋅1051 \le M \le 3 \cdot 10^5).

둘째 줄에는 공백으로 구분된 아이들의 이름 NN개가 주어진다. 이름은 최대 10글자이며 대문자와 소문자 라틴 문자, 하이픈(-)으로만 이루어진다. 모든 이름은 서로 다르다.

이어서 MM개의 줄에 각각 친구 관계인 두 이름이 공백으로 구분되어 주어진다.

출력

해결할 수 있으면 첫 줄에 SAAB를 출력하고, 둘째 줄에 모든 아이를 만족시키는 순서대로 이름을 출력한다. 해결할 수 없으면 EI SAA를 출력한다.

예제2

  1. 예제 1

    입력
    5 3
    Bob Carol Eve Dave Alice
    Alice Carol
    Alice Bob
    Dave Eve
    
    예상 출력
    SAAB
    Bob Alice Carol Eve Dave
    
  2. 예제 2

    입력
    3 3
    Regina Gretchen Karen
    Regina Gretchen
    Gretchen Karen
    Regina Karen
    
    예상 출력
    EI SAA