우두머리

동물들이 원을 이루어 진행 중인 수를 1부터 K만큼 키우며, M을 말한 팀이 지는 게임에서 각 시작 위치마다 어느 팀이 이기는지 구한다.

어려움9게임 이론동적 계획법구현수학아직 제출이 없습니다시간 제한3초메모리 제한512 MB

문제

염소와 양은 풀을 뜯을 목초지를 두고 오랫동안 다퉈 왔다. 거친 싸움이 여러 번 이어지자 염소의 우두머리와 양의 우두머리가 만나 평화로운 해결책을 찾기로 했다. 긴 논의 끝에 두 우두머리는 목초지마다 게임을 한 판씩 하고, 이긴 팀이 그 목초지에서 풀을 뜯기로 합의했다.

게임 방법은 다음과 같다. 염소와 양을 합쳐 NN마리가 원을 이루어 선다. 어느 자리에 염소가 서고 어느 자리에 양이 설지는 두 우두머리가 미리 정한다. ii번 동물(1iN11 \le i \le N-1) 다음에는 i+1i+1번 동물이 이어서 말하고, NN번 동물 다음에는 11번 동물이 이어서 말한다.

게임을 시작하는 동물은 11 이상 KK 이하의 정수 중 하나를 말한다. 바로 앞의 동물이 jj를 말했다면 그다음 동물은 j+1j+1 이상 j+Kj+K 이하의 정수 중 하나를 말한다. 다시 말해 각 동물은 바로 앞에서 나온 수보다 최소 11, 최대 KK만큼 큰 수를 말한다. 어떤 경우에도 MM보다 큰 수는 말할 수 없고, MM을 말한 동물이 속한 팀이 진다.

모든 동물은 자기 팀이 이기도록 최적으로 행동한다. 각 ii(1iN1 \le i \le N)에 대해 ii번 동물이 게임을 시작하면 어느 팀이 목초지를 차지하는지 구하라.

입력

첫째 줄에 NN, MM, KK가 공백으로 구분되어 주어진다. (1N,M,K50001 \le N, M, K \le 5000)

둘째 줄에 NN개의 수가 공백으로 구분되어 주어진다. ii번째 수는 ii번 동물이 양이면 00, 염소면 11이다.

출력

NN개의 수를 공백으로 구분해 한 줄에 출력한다. ii번째 수는 ii번 동물이 게임을 시작할 때 양이 목초지를 차지하면 00, 염소가 차지하면 11이다.

힌트

첫 번째 예제에서 양이 먼저 시작하면 다음과 같이 이길 수 있다. 양이 22를 말하면 염소는 33이나 44를 말할 수 있는데, 어느 쪽이든 양은 55를 말할 수 있다. 이어서 염소는 66이나 77을 말할 수 있고, 어느 쪽이든 양은 88을 말할 수 있다. 그러면 염소는 99밖에 말할 수 없어서 게임과 목초지를 모두 잃는다.