지도 제작
시간 제한3초메모리 제한512 MB
격자 크기를 모르는 도시에서 각 집의 이웃 명단이 틀릴 수 있을 때, 모든 명단과 일치하는 격자 지도를 찾고 불가능하면 -1을 출력합니다.
문제
지도 제작은 지도를 만드는 일이다. Abbey는 어떤 도시에 있는 모든 집의 위치를 지도로 그리려는 지도 제작자다. 그러나 그녀는 그 도시를 한 번도 가 본 적이 없다.
이 도시는 직사각형 격자이며, 교차점마다 집이 하나씩 있다. 격자의 가로와 세로 크기는 모르지만, 각 차원이 2 이상이라는 것은 알고 있다.
이웃은 북, 동, 남, 서 중 한 방향으로 교차점을 정확히 한 칸 떨어진 집이다. 각 집의 이웃은 정확히 2, 3, 4명이다. 모서리에 있는 집은 2명, 가장자리에 있는 집은 3명, 그 밖의 집은 4명이다.
작년에 도시의 각 가구는 자신의 이웃이 누구인지 적었다. 이 국세 조사 결과에는 틀린 내용이 있을 수 있다. 어떤 가구는 이웃이 아닌 사람을 적었고, 어떤 가구는 이웃을 빠뜨렸다. 또 어떤 가구는 이웃을 더 많이 적었고, 심지어 자기 자신을 이웃으로 적은 가구도 있다.
가능하다면 Abbey가 모든 조사 결과와 일치하는 도시 지도를 그리도록 도와라. 모든 가구가 자신의 이웃을 정확히 적었다면 지도는 조사 결과와 일치한다.
입력
첫 줄에 정수 ()이 주어진다. 이는 도시에 있는 집의 수다.
다음 개의 줄은 1번 집부터 번 집까지 순서대로 조사 결과를 나타낸다. 각 줄은 정수 ()로 시작하는데, 이는 그 집의 이웃 수다. 이어서 1 이상 이하의 서로 다른 정수 개가 주어지며, 이들은 이웃 집의 번호다.
출력
입력과 일치하는 유효한 지도가 없으면 -1을 출력한다.
그렇지 않으면 첫 줄에 지도의 크기 과 를 출력하고, 이어서 격자에 정수를 채워 출력한다. 1부터 까지의 수는 각각 정확히 한 번씩 나타나야 하며, 지도는 입력과 일치해야 한다. 올바른 답이 여러 개라면 그중 어느 것을 출력해도 된다.