//求C(n,k)约数个数
//先用cin TLE了,改用scanf 提交c++ 过了
#include <iostream>
#include <vector>
#include <cstring>
#include <cstdio>
using namespace std;
#define maxn 500
vector <int> a[432];
bool prime[maxn];
int b[432];
void findprime()
{
memset(prime,true,sizeof(prime));
prime[0]=false;
prime[1]=false;
for(int i=2;i*i<maxn;++i)
{
if(prime[i])
{
for(int j=i*i;j<maxn;j+=i)
{
prime[j]=false;
}
}
}
}
void kk()
{
int t;
for(int i=2; i<432; ++i)
{
if(prime[i]) continue;
else
{
t=i;
for(int j=2; (j<432)&&(!prime[t]); ++j)
{
if(prime[j]&&t%j==0)
{
a[i].push_back(j);
t=t/j;
j=1;
}
}
a[i].push_back(t);
}
}
}
int main()
{
findprime();
kk();
int n,k;
while (scanf("%d%d",&n,&k)!=EOF)
{
__int64 co=1;
memset(b,0,sizeof(b));
for(int i=n-k+1;i<=n;++i)
{
if(prime[i]) b[i]++;
else
{
for(int j=0;j<a[i].size();++j) b[a[i][j]]++;
}
}
for(int i=2;i<=k;++i)
{
if(prime[i]) b[i]--;
else
{
for(int j=0;j<a[i].size();++j) b[a[i][j]]--;
}
}
for(int i=2;i<=431;++i) co*=(b[i]+1);
printf("%I64d\n",co);
}
return 0;
}