Rouba-Monte

카드를 뽑아 몬테를 가져오고 값이 맞지 않으면 버리는 게임을 시뮬레이션해, 몬테가 가장 큰 사람을 찾는다.

보통5시뮬레이션구현배열해시맵면접 대비아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

Rouba-Monte는 규칙이 단순해서 어린아이도 즐기는 카드 게임이다. 보통 카드 한 벌 이상을 쓰고, 카드는 값(에이스, 2, 3, ...)으로만 구분한다. 무늬는 따지지 않으므로 클로버 에이스와 다이아몬드 에이스는 같은 카드로 본다.

게임을 시작할 때 카드를 섞어 앞면이 바닥을 향하도록 한 무더기로 쌓아 탁자에 놓는다. 이 무더기를 뽑기 더미라고 한다. 게임을 하는 동안 각 플레이어는 앞면이 위를 향한 카드 더미를 하나씩 유지하는데, 이를 몬테라고 한다. 몬테에 든 카드는 0장일 수도 있고 여러 장일 수도 있으며, 게임을 시작할 때는 모두 0장이다. 뽑기 더미 옆에는 버림 자리가 있고 처음에는 비어 있다. 버림 자리에 놓은 카드는 쌓지 않고 앞면이 위를 향하도록 나란히 늘어놓는다.

플레이어는 탁자를 둘러싸고 원형으로 앉아 시계 방향으로 차례를 넘긴다. 한 차례는 다음과 같이 진행한다.

  • 차례가 된 플레이어는 뽑기 더미의 맨 위 카드를 가져와 다른 플레이어에게 보여 준다. 이 카드를 이번 카드라고 하자.
  • 이번 카드가 버림 자리에 있는 어떤 카드와 값이 같으면, 그 카드를 버림 자리에서 거두어 이번 카드와 함께 자기 몬테 맨 위에 앞면이 위를 향하도록 올리고 차례를 이어 간다. 즉 뽑기 더미에서 카드를 한 장 더 가져와 같은 과정을 되풀이한다.
  • 이번 카드가 다른 플레이어 몬테의 맨 위 카드와 값이 같으면, 그 몬테를 통째로 빼앗아 자기 몬테 위에 얹고 이번 카드를 맨 위에 앞면이 위를 향하도록 올린 뒤 차례를 이어 간다.
  • 이번 카드가 자기 몬테의 맨 위 카드와 값이 같으면, 이번 카드를 자기 몬테 맨 위에 앞면이 위를 향하도록 올리고 차례를 이어 간다.
  • 이번 카드가 버림 자리의 카드와도, 어느 몬테의 맨 위 카드와도 값이 다르면, 그 카드를 버림 자리에 앞면이 위를 향하도록 내려놓고 차례를 끝낸다. 차례가 끝나는 경우는 이때뿐이다.

뽑기 더미에 카드가 남지 않으면 게임이 끝난다. 몬테에 든 카드가 가장 많은 플레이어가 이긴다. 카드 수가 같아 최대가 여럿이면 그 플레이어 모두 이긴다.

뽑기 더미에 쌓인 카드의 순서가 주어질 때, 이긴 플레이어를 구하는 프로그램을 작성하시오.

입력

입력은 여러 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫째 줄에는 정수 N과 J가 주어진다. N은 뽑기 더미의 카드 수이고 (2N100002 \le N \le 10000), J는 플레이어 수이다 (2J202 \le J \le 20, JNJ \le N). 카드는 1부터 13까지의 정수로 나타내고, 플레이어는 1부터 J까지의 정수로 구분한다. 1번 플레이어가 먼저 하고 그다음은 2번, ..., J번, 다시 1번 순서로, 뽑기 더미에 카드가 남아 있는 동안 차례가 돌아간다. 둘째 줄에는 뽑기 더미의 카드를 나타내는 1 이상 13 이하의 정수 N개가 공백 하나로 구분되어 주어진다. 카드는 입력에 나온 순서대로 뽑기 더미에서 나온다. 입력의 끝은 N과 J가 모두 0인 줄로 나타낸다.

출력

각 테스트 케이스마다 한 줄에, 이긴 플레이어의 몬테에 든 카드 수를 출력하고 공백 하나를 둔 다음 이긴 플레이어의 번호를 출력한다. 이긴 플레이어가 여럿이면 번호를 증가하는 순서로 공백 하나씩 구분해 출력한다.