안정된 집단

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

문제

여러 사람으로 이루어진 집단이 안정되어 있으려면 다음 중 하나를 만족해야 한다.

  • 전체 집단의 모든 두 사람이 서로 좋아한다.
  • 집단을 여러 소집단으로 나눌 수 있고, 각 소집단 안의 모든 두 사람은 서로 좋아하며, 서로 다른 소집단에 속한 두 사람은 모두 서로 싫어한다.

각 소집단은 적어도 2명으로 이루어져야 한다. 따라서 어떤 사람과 서로 좋아하는 다른 사람이 아무도 없다면 그 집단은 안정되어 있지 않다.

사람은 1번부터 n번까지 번호가 붙어 있다. 두 사람이 서로 좋아하면 0, 서로 싫어하면 1로 주어진다. 모든 사람 쌍의 관계가 주어질 때, 집단이 안정되어 있는지 판단하고, 안정되어 있다면 소집단 구성을 출력하라.

입력

첫째 줄에 집단에 속한 사람 수 n(2 ≤ n ≤ 100)이 주어진다.

다음 n개의 줄에는 n개의 정수가 주어진다. i번째 줄의 j번째 값은 i번 사람과 j번 사람의 관계를 나타내며, 서로 좋아하면 0, 서로 싫어하면 1이다. 값 사이에는 공백이 하나 있다. 각 사람은 자기 자신을 좋아한다고 가정한다.

출력

집단이 안정되어 있지 않다면 첫째 줄에 0을 출력한다.

집단이 안정되어 있다면 첫째 줄에 서로 좋아하는 소집단의 수를 출력한다. 이어서 각 소집단에 대해 한 줄에 하나씩, 그 소집단에 속한 사람의 번호를 공백 하나로 구분하여 출력한다.

각 소집단 안에서는 번호를 오름차순으로 출력한다. 소집단들은 각 소집단에 속한 가장 작은 번호가 작은 순서대로 출력한다.