스케줄은 n개의 행과 m개의 열로 이루어진 0-1 행렬로 표현된다. 각 행은 한 사람을, 각 열은 하나의 이벤트를 나타낸다. 어떤 사람이 이벤트에 참여하면 그 행의 해당 칸이 1이고, 참여하지 않으면 0이다. 이벤트는 열의 순서대로 하나씩 연이어 열린다.
예를 들어, 다음 행렬은 이러한 스케줄을 나타낼 수 있다.
00000000000000000011
11111111000000000000
00000000000000001111
00000000000011000000
00000000000000111100
00000000000001110000
00111000000000000000
00000000000111000000
00000000111100000000
00000000000000000001
11000000000000000000
00001111111000000000
00000111111111111111
00000000011111100000
00000000001111111110
00000000000000011110
00000001111100000000
00000011111111110000
00011110000000000000
01111111111100000000
00000000000000000111
모든 행에서 1들이 연속되도록 열의 순서를 바꾸어라(열을 재배열하라). 즉, 각 사람이 자신의 모든 이벤트를 중간에 빠짐없이 연달아 참여하게 되는 이벤트 순서를 찾아라.
첫째 줄에 행의 수 n (n≤400)이 주어진다. 둘째 줄에 열의 수 m (m≤400)이 주어진다. 이후 n개의 줄에 각각 0 또는 1로 이루어진 길이 m의 문자열이 주어지며, 행렬의 한 행을 나타낸다.
열은 0번부터 번호가 매겨진다. 입력 행렬은 0번 열을 0번 위치에 고정했을 때 조건을 만족하는 재배열이 정확히 하나만 존재하도록 주어진다. 또한 임의의 두 열이 공통으로 갖는 1의 개수는 적다.
열의 재배열을 나타내는 m개의 정수를 한 줄에 하나씩 출력한다. 첫 줄의 값은 반드시 0이어야 한다(0번 열은 움직이지 않는다). i번째 줄(0-indexed)의 값은 재배열에서 위치 i에 놓이는 열의 원래 인덱스이다.