#include<bits/stdc++.h>
using namespace std;
const int N=1010;
const int mod=1e9+7;
int f[N][N];
int main()
{
int n,a,b;
cin>>n>>a>>b;
f[1][1]=1;
//f[i][j] 第i天时得到八卦的时间恰好为j天的人数
//状态转移:
//1.f[i][j]+=f[i-1][j-1]; 此方程显然
//2.对于前一天的得到八卦的时间a<=j<b时(状态表示为f[i-1][j])
//当天会有一个新的八卦的人(此时状态表示为f[i][1])
for(int i=2;i<=n;i++)
{
for(int j=1;j<=n;j++)
(f[i][j]+=f[i-1][j-1])%=mod;
for (int j=a;j<b;j++)
(f[i][1]+=f[i-1][j])%=mod;
}
int res=0;
for (int j=1;j<=b;j++)
res=(res+f[n][j])%mod;
cout<<res;
return 0;
}
using namespace std;
const int N=1010;
const int mod=1e9+7;
int f[N][N];
int main()
{
int n,a,b;
cin>>n>>a>>b;
f[1][1]=1;
//f[i][j] 第i天时得到八卦的时间恰好为j天的人数
//状态转移:
//1.f[i][j]+=f[i-1][j-1]; 此方程显然
//2.对于前一天的得到八卦的时间a<=j<b时(状态表示为f[i-1][j])
//当天会有一个新的八卦的人(此时状态表示为f[i][1])
for(int i=2;i<=n;i++)
{
for(int j=1;j<=n;j++)
(f[i][j]+=f[i-1][j-1])%=mod;
for (int j=a;j<b;j++)
(f[i][1]+=f[i-1][j])%=mod;
}
int res=0;
for (int j=1;j<=b;j++)
res=(res+f[n][j])%mod;
cout<<res;
return 0;
}

京公网安备 11010502036488号