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 Ruby (2.3.3) (judge verdict: Accepted)

N, K = gets.split.map(&:to_i)
MOD = 10**9 + 7

rn = Math.sqrt(N).to_i
a = [1] * rn
i = rn + 1
while i <= N
  j = N/(N/i) + 1
  a << j - i
  i = j
end
c = a.size
dp = Array.new(K + 1){Array.new(c + 1, 0)}
dp[0][0] = 1
(0 ... K).each do |k|
  s = [0]
  (0 ... c).each{|j| s[j + 1] = (s[j] + dp[k][j]) % MOD}
  (0 ... c).each{|j| dp[k + 1][j] = (s[c - j] * a[j]) % MOD}
end
puts dp[K].inject(0){|s, x| (s + x) % MOD}