바이트아사르(Byteasar)는 파티를 열려고 한다. 당연히 파티가 성공적이길 바란다. 그는 초대한 손님이 모두 서로 아는 사이이기만 하면 파티가 성공한다고 확신한다. 지금 그는 초대하고 싶은 친구 목록을 짜고 있다.
바이트아사르에게는 친구가 n명 있고, n은 3의 배수이다. 다행히 그의 친구들은 대부분 서로 아는 사이다. 또한 그는 예전에 자신의 친구 32n명이 모인 파티에 참석한 적이 있는데, 그 자리에 있던 사람들은 모두 서로 아는 사이였다는 사실을 기억한다. 아쉽게도 그 파티에 대해 그 밖의 것은 잘 기억나지 않는다. 특히 어떤 친구들이 그 자리에 있었는지는 전혀 모른다.
바이트아사르는 굳이 큰 파티를 열 생각은 없지만, 최소한 친구 3n명은 초대하고 싶다. 어떻게 골라야 할지 몰라 당신에게 도움을 청한다. 즉, 서로 모두 아는 사이인 친구 3n명을 찾아야 한다.
첫째 줄에 두 정수 n과 m이 공백 하나로 구분되어 주어진다 (3≤n≤3000, 232n(32n−1)≤m≤2n(n−1), 그리고 n은 3의 배수). 각각 바이트아사르의 친구 수와, 서로 아는 친구 쌍의 수를 뜻한다. 친구들은 1번부터 n번까지 번호가 매겨져 있다.
이어지는 m개의 줄에는 각각 공백으로 구분된 두 정수가 주어진다. i+1번째 줄(i=1,2,…,m)의 두 수 ai와 bi (1≤ai<bi≤n)는 ai번과 bi번 두 사람이 서로 아는 사이임을 뜻한다. 같은 쌍은 입력에 많아야 한 번 등장한다.
조건을 만족하는 친구 무리는 여러 가지일 수 있으므로, 답이 유일하게 정해지도록 아래의 결정적 절차로 초대 목록을 만든다.
빈 초대 목록에서 시작한다. 친구를 1번부터 n번까지 차례대로 살펴본다. 친구 v를 살펴볼 때:
친구 n명을 모두 살펴보고 나면, 목록에 남은 사람들은 서로 모두 아는 사이이며 그 수는 최소 3n명이다. 최종 초대 목록에서 번호가 가장 작은 3n명을, 한 줄에 오름차순으로 공백 하나씩 구분하여 출력한다.

예시 그래프에서 1,3,4,5번 친구는 서로 모두 아는 사이다. 위 절차를 1번부터 차례로 적용하면 최종 초대 목록으로 {3,4}가 남고, 따라서 3 4를 출력한다.