실내 자전거 프로그램

각 단계마다 정확히 1씩 변하고 값이 M과 N 사이에 머무는 길이 T의 수열 개수를 10^9+7로 나눈 나머지로 구한다.

보통6동적 계획법아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

비니시우스는 헬스장에서 운동하기를 아주 좋아한다. 그는 실내 자전거를 탈 때마다 매번 다른 운동 프로그램을 받기로 트레이너와 약속했다. 헬스장에서 말하는 프로그램이란 운동 난이도를 시간 순서대로 늘어놓은 수열이다. 비니시우스의 실내 자전거 프로그램은 모두 길이가 같아야 하고, 난이도는 1분마다 바로 한 단계 위나 바로 한 단계 아래로 바뀌어야 한다. 난이도는 미리 정해 둔 최솟값보다 낮아도 안 되고 최댓값보다 높아도 안 된다.

즉, TT분짜리 프로그램은 1분마다의 난이도를 순서대로 적은 길이 TT의 정수 수열이고, 이웃한 두 분의 난이도는 정확히 11만큼 차이가 난다. 위 조건을 지키면서 트레이너가 만들 수 있는 서로 다른 프로그램의 개수를 구하라.

입력

첫째 줄에 세 정수 TT, MM, NN이 공백으로 구분되어 주어진다. (1T501 \le T \le 50, 1M<N1000001 \le M < N \le 100000)

TT는 운동하는 시간(분), MM은 허용되는 난이도의 최솟값, NN은 허용되는 난이도의 최댓값이다.

출력

트레이너가 만들 수 있는 서로 다른 프로그램의 개수를 한 줄에 출력한다. 이 값이 매우 클 수 있으므로 109+710^9 + 7로 나눈 나머지를 출력한다.