Problem: 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.

Examples

Input

3 2


Output

5


Input

10 3


Output

147


Input

314159265 35


Output

457397712

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
#define rep(i,n)for(int i=0;i<(n);i++)
#define MOD 1000000007
#define INF 0x3f3f3f3f
#define INFL 0x3f3f3f3f3f3f3f3f
using namespace std;
typedef long long ll;
typedef pair<int,int>P;

int dp[150][70000];
int main(){
	int n,K;cin>>n>>K;
	vector<P>v;
	int sq=0;
	for(int i=1;i*i<=n;i++){
		v.push_back(P(i,i));
		sq=i;
	}
	for(int i=1;i*i<n;i++){
		v.push_back(P(max(sq+1,n/(i+1)+1),n/i));
	}
	sort(v.begin(),v.end());
	dp[0][0]=1;
	rep(i,K){
		int sum=0;
		int s=0;
		for(int j=v.size()-1;j>=0;j--){
			int d=n/v[j].first;
			while(s<v.size()&&v[s].second<=d){
				(sum+=dp[i][s])%=MOD;
				s++;
			}
			dp[i+1][j]=sum*(ll)(v[j].second-v[j].first+1)%MOD;
		}
	}
	int ans=0;
	rep(i,v.size())(ans+=dp[K][i])%=MOD;
	cout<<ans<<endl;
}