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 JAVA):

Solution:
import java.util.Scanner;

public class Main {
	public static void main(String[] args) throws Exception {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int k = sc.nextInt();
		sc.close();

		int mod = 1000000007;
		int rn = (int) Math.sqrt(n);
		int[] cnt = new int[rn + 1];
		cnt[1] = n;
		for (int i = 2; i <= rn; i++) {
			cnt[i] = n / i;
			cnt[i - 1] -= cnt[i];
		}
		cnt[rn] -= rn;

		long[][] dp = new long[k + 1][rn + 1];
		for (int j = 1; j <= rn; j++) {
			dp[0][j] = 1;
			dp[1][j] = dp[1][j - 1] + 1;
		}
		for (int i = 2; i <= k; i++) {
			long sum = 0;
			for (int j = rn; j > 0; j--) {
				sum += dp[i - 2][j] * cnt[j];
				sum %= mod;
				dp[i][j] = dp[i - 1][rn] + sum;
				dp[i][j] %= mod;
			}
			for (int j = 1; j <= rn; j++) {
				dp[i][j] += dp[i][j - 1];
				dp[i][j] %= mod;
			}
		}

		long ans = dp[k][rn];
		for (int j = 1; j <= rn; j++) {
			ans += dp[k - 1][j] * cnt[j];
			ans %= mod;
		}
		System.out.println(ans);
	}
}