외계 미생물

미생물 한 마리에서 시작해 H일 동안 나타날 수 있는 번식 패턴의 수를 센다. 각 날에 살아 있는 미생물이 낳는 자식 수의 합은 W 이하다.

어려움8동적 계획법조합론재귀수학면접 대비아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

B와 C로 가득한 성적표를 보고 컴퓨터공학에는 재능이 없다고 판단한 윤영이는 전공을 바꿔 항공우주학과와 생물학과를 복수전공했고, 외계 생물 연구자로 크게 성공했다.

어느 행성에서 특이한 외계 미생물을 발견한 윤영이는 몇 마리를 연구소로 가져와 관찰했다. 연구 결과 이 미생물은 다음 성질이 있었다.

  1. 미생물은 혼자서 자식을 낳는다. 하루 동안 자식을 모두 낳고 그날 죽는다. 낳을 자식의 수는 미생물이 자유롭게 정한다. 자식은 낳은 순서로 구분하며, 태어난 다음 날부터 자기 자식을 낳는다.
  2. 미생물은 자식끼리 지나치게 경쟁하는 상황을 원하지 않는다. 그래서 그날 살아 있는 미생물이 낳은 자식 수의 총합이 WW 이하가 되도록 서로 협력한다. WW는 세대가 바뀌어도 변하지 않는다.
  3. 자식을 한 마리도 낳지 않는 미생물이 있어도 되지만, 종족을 유지해야 하므로 그날 살아 있는 미생물이 모두 자식을 낳지 않는 일은 일어나지 않는다. 자식을 낳지 않아도 태어난 다음 날 죽는 것은 똑같다.

윤영이는 번식하는 모습이 재미있어서 미생물 한 마리만 실험실 용기에 담아 두었다. 이 용기에서 지나친 경쟁 없이 허용되는 자식 수의 총합은 WW이고, 미생물은 곧 번식을 시작했다.

같은 날 살아 있는 미생물은 서로 구분한다. 하루의 번식 양상은 그날 살아 있는 미생물이 낳은 자식의 수를 미생물 순서대로 적은 수열이고, HH일 동안의 번식 양상은 이런 수열 HH개를 날짜 순서대로 늘어놓은 것이다. 하루라도 수열이 다르면 서로 다른 양상으로 센다.

미생물 한 마리에서 시작해 HH일 동안 생길 수 있는 번식 양상의 수를 구하시오.

입력

첫째 줄에 HHWW가 공백으로 구분되어 주어진다. 0H50 \le H \le 5, 1W2001 \le W \le 200이다.

출력

HH일 동안 생길 수 있는 번식 양상의 수를 1,000,000,0071{,}000{,}000{,}007로 나눈 나머지를 첫째 줄에 출력한다. 경우의 수가 매우 커질 수 있으므로 계산 중간값이 32비트 정수의 범위를 넘을 수 있다. 64비트 정수를 쓰는 편이 안전하다.

힌트

H=1H = 1, W=3W = 3이면 처음 미생물 한 마리가 자식을 1마리, 2마리, 3마리 낳는 세 가지 양상이 있다. 자식을 0마리 낳는 경우는 조건 3에 걸려 세지 않는다.

H=0H = 0이면 번식이 한 번도 일어나지 않으므로 양상은 빈 것 하나뿐이고, 답은 1이다.