소풍

시간 제한2초메모리 제한128 MB

요약
N명의 학생과 F개의 친구 관계가 주어질 때 정확히 K명으로 구성된 클리크 중 사전순으로 가장 작은 것을 찾고 없으면 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
백트래킹, 그래프, 완전 탐색
정답자
아직 제출이 없습니다

문제

1번부터 N번까지 번호가 붙은 N명의 학생 중 K명을 소풍에 보내려고 합니다. 선택된 학생들 사이에서 다툼이 일어나지 않도록, 선택된 K명은 서로 모두 친구여야 합니다. 즉, 어떤 두 학생을 골라도 그 두 학생 사이에 친구 관계가 있어야 합니다.

친구 관계 F개가 주어질 때, 조건을 만족하는 K명의 학생 번호를 찾아 출력하세요.

입력

첫째 줄에 세 정수 K, N, F가 공백으로 구분되어 주어집니다. (1 ≤ K ≤ 62, K ≤ N ≤ 900, 1 ≤ F ≤ 5,600)

다음 F개의 줄에는 서로 친구인 두 학생의 번호가 공백으로 구분되어 주어집니다. 친구 관계는 양방향입니다. 같은 친구 관계가 두 번 이상 주어지지 않습니다.

출력

조건을 만족하는 K명의 학생이 없으면 -1을 출력합니다.

조건을 만족하는 경우에는 학생 번호를 오름차순으로 한 줄에 하나씩 출력합니다. 가능한 답이 여러 개라면, 출력되는 번호열을 사전순으로 비교했을 때 가장 앞서는 답을 출력합니다.

예제1

  1. 예제 1

    입력
    4 6 8
    1 2
    1 3
    1 6
    2 3
    2 6
    3 6
    4 5
    5 6
    
    예상 출력
    1
    2
    3
    6