개척민 무리가 정착할 곳을 찾아 지도에 없던 섬에 상륙했다. 섬에는 이미 원주민이 살고 있어서, 이제 누가 살아남는지를 겨루는 경주가 시작된다. 정착하려면 먼저 식량을 구해야 한다. 개척민은 농사를 배운 적이 없어서 손 닿는 식량을 모두 먹어 치우고 다시 떠난다. 두 무리가 마주치면 자원이 모자란 탓에 죽을 때까지 싸운다. N번의 턴이 지난 뒤 어느 무리가 살아 있고 어느 무리가 죽었는지, 그리고 각 무리가 섬의 어디에 있는지 구하라.
섬은 A×B 크기의 직사각형 격자다. 각 칸은 물, 들판, 산 중 하나다. 개척민과 원주민 무리는 헤엄치지도 오르지도 못해서 들판에만 설 수 있다. 들판 일부에는 밀이 자라며, 밀은 무리가 먹을 수 있는 유일한 식량이다.
무리마다 식별 번호와 인원수가 정해져 있다. 매 해(턴)마다 살아 있는 무리, 즉 인원이 1명 이상 남은 무리가 각각 한 번씩 행동한다. 식별 번호가 가장 작은 무리부터 시작해 번호가 커지는 순서로 모든 무리가 차례를 마친다. 한 무리는 아래 행동 중 정확히 하나만 한다. 어떤 행동을 할지는 첫 번째부터 차례로 시도해서 정한다. 첫 번째를 할 수 없으면 두 번째를, 두 번째도 할 수 없으면 세 번째를 시도한다. 세 행동 중 적어도 하나는 언제나 할 수 있다.
각 무리의 턴이 끝나면 인원수를 다시 계산한다.
올림은 무리에 더하거나 무리에서 빼는 인원수에 적용한다. 인접 여부는 동서남북 네 방향으로만 따진다.
이동. 개척민이든 원주민이든 섬에서 움직이는 방식은 엄격한 의식을 따른다. 각 무리는 다음 규칙으로 방향을 고른다.
물과 산은 지나갈 수 없으므로 이동할 칸으로 아예 고려하지 않는다.
위 규칙에서 그대로 따라 나오는 세부 사항.
입력은 최대 100개의 데이터 집합으로 이루어지며 비어 있지 않다. 각 데이터 집합은 아래 형식을 따르고, 집합 사이에 빈 줄은 없다.
데이터 집합 하나는 세 부분으로 이루어진다.
시작 줄. START N 한 줄이며, N은 시뮬레이션할 햇수로 1≤N≤100인 양의 정수다.
시작 지도. 시작 배치를 나타내는 지도이며, A개의 줄에 각각 B개의 칸이 적혀 있다. A×B 지도의 크기는 입력에 직접 주어지지 않지만 A와 B는 모두 1 이상 20 이하다. 한 줄 안의 칸은 공백 하나로 구분하고, 각 칸은 식별자와 숫자 한 쌍이다. 식별자는 다음 중 하나다.
. (마침표) 밀이 없는 들판w (소문자) 밀이 있는 들판M (대문자) 산W (대문자) 물숫자는 [0,999] 범위의 정수다. 이 숫자는 무리(남은 인원수)와 밀(남은 밀의 양)에만 의미가 있다.
끝 줄. END 한 줄.
데이터 집합마다 출력 집합을 정확히 하나씩 출력하고, 출력 집합 사이에는 빈 줄을 하나 넣는다.
출력 집합 하나는 GroupID Size Position YearDied 형식의 줄로 이루어지며, GroupID가 커지는 순서로 출력한다.
GroupID는 무리의 식별 번호다.Size는 N년이 지난 뒤의 인원수다.Position은 N년이 지난 뒤의 위치 (X,Y)다. X는 열, Y는 행이고, (0,0)은 가장 북서쪽 칸, 즉 시작 지도 첫 줄의 첫 칸이다.YearDied는 이 무리가 죽은, 즉 인원이 0이 된 해를 나타내는 양의 정수다. N년이 끝날 때까지 살아 있는 무리는 이 항목을 출력하지 않는다.