두 팀으로 나누기

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

문제

사람들을 다음 조건을 모두 만족하도록 정확히 두 팀으로 나누세요.

  • 모든 사람은 정확히 한 팀에 속한다.
  • 각 팀에는 적어도 한 명이 있다.
  • 한 팀 안에서는 모든 사람이 같은 팀의 다른 모든 사람을 안다.
  • 두 팀의 크기 차이가 가능한 한 작다.

'안다'는 반드시 상호적이지 않습니다. 사람 aa가 사람 bb를 알아도 bbaa를 모를 수 있습니다. 두 사람이 같은 팀에 속하려면 양방향으로 서로를 알아야 합니다.

이렇게 두 팀으로 나누는 것이 불가능하면, 유효한 분할이 없음을 보고하세요.

입력

사람들은 11부터 NN까지 서로 다른 정수로 번호가 매겨져 있습니다.

첫 줄에는 사람 수를 나타내는 정수 NN (2N1002 \le N \le 100)이 주어집니다. 이어지는 NN개의 줄은 번호가 커지는 순서대로 각 사람을 설명합니다. 그중 ii번째 줄에는 사람 ii가 아는 사람들의 서로 다른 번호 AijA_{ij} (1AijN1 \le A_{ij} \le N, AijiA_{ij} \ne i)가 공백으로 구분되어 나열되고, 마지막에 하나의 00으로 끝납니다.

출력

유효한 분할이 존재하지 않으면 No solution을 한 줄에 출력합니다.

그렇지 않으면, 크기 차이가 가장 작은 분할의 두 팀 크기는 유일하게 정해집니다. 이 두 크기를 한 줄에 공백으로 구분하여 출력합니다. 먼저 더 작은 팀의 크기를, 그다음 더 큰 팀의 크기를 출력합니다(두 팀의 크기가 같으면 같은 값을 두 번 출력합니다).