경근이는 요즘 isRPG라는 웹게임을 열심히 한다. 제목에 RPG가 들어가 있으니 짐작하겠지만, 이 게임에는 캐릭터가 쓸 수 있는 장비 아이템이 많다. 장비는 모두 정해진 방법대로 재료를 모아서 만들고, 완성된 장비의 옵션은 정해진 범위 안에서 무작위로 결정된다. 만들어진 장비가 마음에 들지 않으면 장비를 해체해서 쓴 재료를 일부 돌려받을 수 있다.
isRPG에도 요즘 게임이 대개 그렇듯 업적 시스템이 있어서, 어떤 항목에서 일정 수치를 채우면 업적을 얻는다. 경근이가 지금 노리는 항목은 "장비를 일정 개수 이상 제작하기"와 "장비를 일정 개수 이상 분해하기"다.
isRPG에서 가장 쉽게 만드는 아이템의 최고봉은 나무 단검이다. 재료가 나무 쪼가리 한 종류뿐이고, 나무 쪼가리는 상점에서 쉽게 산다. 업적은 만든 아이템의 질과 아무 상관이 없으니 경근이는 나무 단검을 잔뜩 깎으려고 한다.
나무 쪼가리 N개를 쓰면 나무 단검 하나를 만든다. 나무 단검 하나를 분해하면 나무 쪼가리를 적으면 0개, 많으면 K개까지 돌려받는다. 나무 쪼가리를 x (0≤x≤K)개 돌려받을 확률은 x의 값과 상관없이 모든 x에 대해 1/(K+1)이고, 분해마다 결과는 서로 독립이다.
보물을 지닌 용을 많이 잡아 전리품을 챙긴 경근이는 상점에서 나무 쪼가리를 M개 샀다. 지금 경근이는 나무 단검을 하나도 가지고 있지 않다. 경근이는 이제부터 다음 작업을 반복한다. 먼저 가진 나무 쪼가리로 나무 단검을 더 만들 수 없을 때까지 만들고, 그다음 가진 나무 단검을 모두 분해한다. 나무 단검을 하나도 만들 수 없으면 작업을 멈춘다.
경근이는 수많은 경험으로 모든 작업이 끝난 뒤 인벤토리 창에 나무 쪼가리가 남아 있는 것이 매우 불쾌한 일임을 잘 안다. 그래서 작업이 모두 끝났을 때 나무 쪼가리가 0개 남을 확률을 알고 싶다. 여기까지 생각하니 나무 쪼가리가 i (0≤i<N)개 남을 확률도 알고 싶어졌다. 경근이를 도와주자.
첫째 줄에 나무 단검 하나를 만드는 데 필요한 나무 쪼가리의 개수 N, 나무 단검 하나를 분해했을 때 돌려받을 수 있는 나무 쪼가리의 최대 개수 K, 경근이가 지금 가지고 있는 나무 쪼가리의 개수 M이 공백을 사이에 두고 주어진다. (1≤K<N≤103, 0≤M≤106)
N개의 줄을 출력한다. i번째 줄에는 나무 쪼가리가 i−1개 남을 확률을 출력한다. 남는 나무 쪼가리는 항상 N−1개 이하이므로 출력은 N줄이다.
확률은 소수가 아니라 정수 하나로 적는다. 확률을 기약분수 qp로 나타냈을 때 p−qr≡0(mod109+7)을 만족하는 0 이상 109+7 미만의 정수 r을 출력한다. 이러한 r이 존재하고 이 범위에서 유일하다는 사실은 증명되어 있다.
N=4, K=2, M=4인 경우의 답은 순서대로 31, 31, 31, 0이다. 나무 쪼가리 4개로 단검 하나를 만들면 쪼가리가 0개 남고, 그 단검을 분해하면 쪼가리를 0개, 1개, 2개 돌려받는 세 경우가 각각 확률 31로 일어난다. 어느 경우에도 단검을 더 만들 수 없으므로 작업이 끝난다.