#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;
}