Problem:
Score : 600 points

Problem Statement

Find the number of sequences of length K consisting of positive integers such that the product of any two adjacent elements is at most N, modulo 10^9+7.

Constraints

1\leq N\leq 10^9

1 2\leq K\leq 100 (fixed at 21:33 JST)

N and K are integers.

Input

Input is given from Standard Input in the following format:

N K

Output

Print the number of sequences, modulo 10^9+7.

Sample Input 1

3 2

Sample Output 1

5

(1,1), (1,2), (1,3), (2,1), and (3,1) satisfy the condition.

Sample Input 2

10 3

Sample Output 2

147

Sample Input 3

314159265 35

Sample Output 3

457397712

Solution in C++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include<bits/stdc++.h>
#define N 64000
#define LL long long
#define Mod 1000000007
#define db(x) cout<<#x<<"="<<x<<endl;
using namespace std;
int n,k,t,cnt[N];
int l[N>>1],r[N>>1],tot;
LL dp[105][N];
int main() {
	scanf("%d%d",&n,&k);
	int x=1;
	while(x<=n) {
		int a=n/x;
		int b=n/a;
		l[++tot]=x,r[tot]=b;
		x=b+1;
	}
	for(int i=1; i<=tot; i++)dp[1][i]=cnt[i]=r[i]-l[i]+1,dp[1][i]+=dp[1][i-1];
	for(int i=2; i<=k; i++)
		for(int j=1; j<=tot; j++) {
			dp[i][j]+=dp[i-1][tot-j+1]*cnt[j]%Mod;
			dp[i][j]+=dp[i][j-1];
			dp[i][j]%=Mod;
		}
	printf("%lld\n",dp[k][tot]);
	return 0;
}