Primonimo
시간 제한2초메모리 제한512 MB
소수 p에 대해 행과 열을 증가시켜 모든 칸을 p로 만드는 횟수를 구하고, 사전순으로 가장 작은 해를 출력한다.
문제

Primonimo는 격자판에서 하는 게임이다. 각 칸에는 이상 이하의 정수가 적혀 있고, 는 소수다. 한 번의 수는 칸 하나를 고르는 것이고, 고른 칸과 같은 행에 있거나 같은 열에 있는 모든 칸의 수가 씩 커진다. 고른 칸은 그 행과 그 열에 모두 속하지만 만 커진다. 가 적혀 있던 칸은 로 돌아간다.
모든 칸이 가 되면 게임을 이긴다. 처음 판이 주어질 때 게임을 이기는 수열을 찾아라.
칸에는 행 우선 순서로 부터 까지 번호를 붙인다. 행 열(둘 다 1부터 센다)에 있는 칸의 번호는 다.
입력
입력은 테스트 케이스 하나로 이루어진다. 첫 줄에 정수 세 개 , , 가 주어진다. 은 행의 개수(), 은 열의 개수(), 는 소수()다. 다음 개 줄에는 각각 이상 이하의 정수가 개씩 주어진다.
출력
이기는 수열이 없으면 을 출력한다.
있으면 다음 규칙으로 답을 하나로 정한다. 고르는 순서는 결과를 바꾸지 않으므로 각 칸을 몇 번 골랐는지만 따지면 된다. 칸 를 고른 횟수를 라 하고, 인 횟수 벡터만 생각한다. 이기는 횟수 벡터가 여럿이면 사전순으로 가장 작은 을 고른다. 즉 이 가장 작은 것을 고르고, 그런 것이 여럿이면 가 가장 작은 것을 고르는 식이다.
첫 줄에 을 출력한다. 둘째 줄에 고른 칸 번호 개를 번호가 작은 것부터 출력하되, 번호 는 번 반복해서 적는다. 이면 둘째 줄은 비운다. 이렇게 정한 는 항상 이하다.