#include <bits/stdc++.h>
using namespace std;
const int mode=1e9+7;
const int N=1e5+10;
typedef long long LL;
LL fact[N],infact[N];
int qmi(int a,int k,int mode)
{
LL res=1;
while(k)
{
if(k&1) res=res*a%mode;
a=(LL)a*a%mode;
k>>=1;
}
return res;
}
void init()
{
fact[0]=infact[0]=1;
for(int i=1;i<N;i++)
{
fact[i]=(LL)fact[i-1]*i%mode;
infact[i]=(LL)infact[i-1]*qmi(i,mode-2,mode)%mode;
}
}
int C(int a,int b)
{
return fact[a]*infact[b]%mode*infact[a-b]%mode;
}
int main()
{
init();
int n,k;
scanf("%d%d",&n,&k);
if(k>=n)
{
cout<<qmi(2,n,mode)%mode<<endl;
}
else
{
LL res=0;
for(int i=0;i<=min(n,k);i++)
{
res=(res+C(n,i))%mode;
}
cout<<res<<endl;
}
return 0;
}