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: Runtime Error)

#include<bits/stdc++.h>
using namespace std;
int mod = 1e9+7;
int main(){
  // n <= 100
  int n,k;
  cin>>n>>k;
  vector<int> dp(10001);
  for(int i=1;i<=10001;++i){
    dp[i] = 1;
    dp[i] += dp[i-1];
  }
  for(int i=2;i<=k;++i){
    vector<int> curr(10001);
    for(int num=1;num<=n;++num){
		int l = 1;
		int r = n/num;
		curr[num] += dp[r];
        curr[num] %= mod;
    }
    for(int i=1;i<=10001;++i){
		curr[i] += curr[i-1];
        curr[i] %= mod;
    }
    dp = curr;
  }
  cout<<dp[n]<<endl;
  return 0;
}