빙고

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

요약
게임 진행자가 카드 번호 순서대로 빙고가 완성되도록 강제하면서 발표할 수 있는 최소 길이의 숫자 시퀀스를 구하거나 불가능하면 0을 출력하는 문제입니다.
난이도

보통10점 중 7점

유형
완전 탐색, 조합론, 시뮬레이션
정답자
아직 제출이 없습니다

문제

빙고 게임은 한 명의 진행자와 여러 명의 참가자가 함께 한다. 게임을 시작할 때 각 참가자는 M×MM \times M 개의 수가 행렬 모양으로 적힌 카드를 한 장씩 받는다(그림 1).

카드

그림 1: 카드

4x4 카드의 빙고 패턴

그림 2: 4x4 카드의 빙고 패턴

게임이 진행되는 동안 진행자는 수를 하나씩 차례로 부른다. 부른 수가 자신의 카드에 있으면 참가자는 그 칸에 구멍을 뚫는다.

카드에서 '빙고'가 하나라도 완성되면 그 참가자는 승리하고 게임에서 빠진다. '빙고'란 어떤 한 줄에 있는 MM 개의 수가 모두 뚫린 것을 말하며, 줄은 가로 한 행, 세로 한 열, 또는 두 대각선 중 하나이다(그림 2).

진행 중인 빙고 게임의 예

그림 3: 진행 중인 빙고 게임의 예

진행자는 모든 참가자가 빙고를 완성할 때까지 계속 수를 부른다.

보통의 빙고 게임에서는 진행자가 수를 무작위로 뽑으므로 순서를 조절할 수 없다. 그러나 이 문제에서 진행자는 처음부터 모든 카드를 알고 있으며, 부르는 수의 순서를 마음대로 정해 게임을 조절한다.

진행자는 항상 다음 조건이 성립하도록 게임을 조절한다.

i<ji < j 인 모든 쌍에 대하여, 카드 ii 는 카드 jj 보다 늦지 않게 빙고를 완성한다. (∗)(*)

예를 들어 그림 3의 상황에서 진행자는 1616 보다 먼저 55 를 부를 수 없다. 그렇게 하면 카드 4가 카드 2, 카드 3보다 먼저 빙고가 되어 조건 (∗)(*) 를 어기기 때문이다.

주어진 카드들에 대하여, 이 조건을 만족하는 호명 순서의 최소 길이를 구하는 프로그램을 작성하라.

입력

입력은 여러 개의 데이터셋으로 이루어진다. 각 데이터셋의 형식은 다음과 같다.

P M
N(1,1,1) N(1,1,2) ... N(1,1,M) N(1,2,1) ... N(1,M,M)
N(2,1,1) N(2,1,2) ... N(2,M,M)
...
N(P,1,1) N(P,1,2) ... N(P,M,M)

모든 값은 정수이다. PP 는 카드의 수이자 참가자의 수이고, MM 은 각 카드의 행 수이자 열 수이다. NkijN_{kij} 는 kk 번째 카드의 (i,j)(i, j) 위치에 적힌 수이며, 한 카드의 M×MM \times M 개의 수는 행 순서대로 한 줄에 나열된다. 같은 카드 안의 수는 모두 서로 다르다. 즉 (i,j)≠(p,q)(i, j) \ne (p, q) 이면 Nkij≠NkpqN_{kij} \ne N_{kpq} 이다. 값의 범위는 2≤P≤42 \le P \le 4, 3≤M≤43 \le M \le 4, 0≤Nkij≤990 \le N_{kij} \le 99 이다.

입력의 끝은 공백으로 구분된 두 개의 00 이 적힌 줄로 나타내며, 이 줄은 데이터셋이 아니다.

출력

각 데이터셋마다 조건 (∗)(*) 를 만족하는 호명 순서의 최소 길이를 한 줄에 하나씩 출력한다. 그러한 순서가 존재하지 않으면 00 을 출력한다.

예제1

  1. 예제 1

    입력
    4 3
    10 25 11 20 6 2 1 15 23
    5 21 3 12 23 17 7 26 2
    8 18 4 22 13 27 16 5 11
    19 9 24 2 11 5 14 28 16
    4 3
    12 13 20 24 28 32 15 16 17
    12 13 21 25 29 33 16 17 18
    12 13 22 26 30 34 17 18 15
    12 13 23 27 31 35 18 15 16
    4 3
    11 12 13 14 15 16 17 18 19
    21 22 23 24 25 26 27 28 29
    31 32 33 34 35 36 37 38 39
    41 42 43 44 45 46 47 48 49
    4 4
    2 6 9 21 15 23 17 31 33 12 25 4 8 24 13 36
    22 18 27 26 35 28 3 7 11 20 38 16 5 32 14 29
    26 7 16 29 27 3 38 14 18 28 20 32 22 35 11 5
    36 13 24 8 4 25 12 33 31 17 23 15 21 9 6 2
    0 0
    
    예상 출력
    5
    4
    12
    0