페리에 자동차 싣기

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

문제

다리가 흔치 않던 시절에는 강 건너로 자동차를 옮기기 위해 페리(나룻배)를 사용했다. 강 페리는 바다를 오가는 큰 페리와 달리 안내줄을 따라 움직이며 강물의 흐름을 동력으로 삼는다. 자동차들은 페리의 한쪽 끝에서 두 줄로 올라타고, 페리가 강을 건넌 뒤 반대쪽 끝으로 빠져나간다.

페리를 기다리는 자동차들은 하나의 대기열을 이룬다. 운영자는 대기열의 맨 앞부터 차례대로 각 자동차를 페리의 왼쪽 차선(port) 또는 오른쪽 차선(starboard) 중 한 곳으로 안내하여 양쪽의 적재량을 맞춘다. 각 차선에 실린 자동차 길이의 합은 페리의 길이를 넘을 수 없다. 이 제약을 지키면서, 대기열의 첫 번째 자동차부터 순서대로 더 이상 실을 수 없을 때까지 최대한 많은 자동차를 싣는 것이 목표다. 실을 수 있는 자동차의 수가 최대가 되도록 각 자동차를 어느 차선에 실을지 정하라.

입력

첫째 줄에 페리의 길이를 나타내는 정수 $L$이 미터 단위로 주어진다 ($1 \le L \le 100$). 이후 각 줄에는 대기열에 있는 자동차의 길이가 센티미터 단위의 정수로 하나씩 주어지며, 그 값은 $100$ 이상 $3000$ 이하이다. 마지막 줄에는 정수 $0$이 주어져 입력의 끝을 나타낸다.

각 차선의 용량은 페리의 길이와 같으므로 센티미터로는 $L \times 100$ 이다. 자동차는 대기열 순서대로만 실을 수 있으며, 어느 차선에서도 실린 자동차 길이의 합이 이 용량을 넘어서는 안 된다. 이 조건을 지키며 첫 번째 자동차부터 순서대로, 더 이상 실을 수 없는 자동차가 나올 때까지 최대한 많이 싣는다.

출력

첫째 줄에 페리에 실을 수 있는 자동차의 최대 개수를 출력한다. 그다음, 실은 각 자동차에 대해 입력에 나온 순서대로 한 줄씩, 그 자동차를 왼쪽 차선에 실으면 port를, 오른쪽 차선에 실으면 starboard를 출력한다.

최대 개수를 싣는 배치가 여러 가지일 수 있으므로, 답을 유일하게 만들기 위해 그중 차선 표기의 나열이 사전순으로 가장 앞서는 것을 출력한다. 나열은 위에서 아래로 한 줄씩 비교하며, 같은 자리에서는 portstarboard보다 앞선다. 즉 각 자동차에 대해, 남은 자동차를 모두 실을 수 있는 한 언제나 port를 먼저 선택하면 된다.