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: Time Limit Exceeded)

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

a = N
s = []
si = []
ss = []
while 0 < a do
  x = N/a
  b = (1...a).bsearch{ |y| N/y == x }
  s << x
  si << (b || a)
  ss << a
  a = (b || a) - 1
end

dp = (0...K).map{ Array.new(s.size, 0) }
(0...s.size).each{ |i| dp[0][i] = ss[i] - si[i] + 1 }
(1...K).each{ |k|
  tt = [0]
  dp[k-1].each{ |x| tt << (tt[-1] + x) % Mod }
  (0...s.size).each{ |i|
    dp[k][i] = (dp[k][i] + tt[-1] - tt[i]) % Mod
  }
  (0...s.size).each{ |i| dp[k][i] = dp[k][i] * dp[0][s.size-1-i] % Mod }
  dp[k].reverse!
}

p dp[-1].reduce{ |a,b| (a + b) % Mod }