#include<cstdio>
#include<cstring>
using namespace std;
const int N=2009;
const int M=1e9+7;
typedef long long ll;
int dp[N][N];
int main(){
int i,j,k,n,m,x,y,T;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
dp[1][i]=1;
for(i=1;i<k;i++){
for(j=1;j<=n;j++){
if(!dp[i][j])
continue;
x=1;
while(x*j<=n){
dp[i+1][x*j]=(dp[i+1][x*j]+dp[i][j])%M;
x++;
}
}
}
int ans=0;
for(i=1;i<=n;i++)
ans=(ans+dp[k][i])%M;
printf("%d\n",ans);
return 0;
}
n^2的dp,递推方程写的很明白了,题目不是很难