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>
using namespace std;
int main(){
    const int mod=1000000007;
    int k,n;
    cin>>k>>n;
    vector<int>v;
    map<int,int>inv;
    for(int i=1;i<k;i=k/(k/(i+1))){
        inv[i]=v.size();
        v.push_back(i);
    }
    inv[k]=v.size();
    v.push_back(k);
    int x=v.size();
    vector<vector<long long>>dp(n+1,vector<long long>(x));
    dp[0][0]=1;
    vector<long long>wa(x,1);
    for(int i=1;i<=n;i++){
        for(int j=0;j<x;j++){
            //dp[i][j]=dp[i-1][0]+dp[i-1][1]+...+dp[i-1][inv[k/v[j]]]
            dp[i][j]+=wa[inv[k/v[j]]]%mod;
        }
        wa[0]=dp[i][0]%mod;
        for(int j=1;j<x;j++)wa[j]=(wa[j-1]+dp[i][j]*(v[j]-v[j-1]))%mod;
    }
    cout<<wa[x-1]<<endl;
    return 0;
}