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.chomp.split(" ").map(&:to_i)
MOD = 10 ** 9 + 7

a = Hash.new{|h, k| h[k] = [0, 0]}
(1..Math.sqrt(N).floor).each{|i|
  a[i] = [N / i, 0]
  a[N / i] = [i, 0]
}
a = a.sort.to_h
b = 0
a.each{|k, v|
  v[1] = k - b
  a[k] = v
  b = k
}

bef = Hash.new
nxt = a.dup.map{|k, v| [k, 0]}.to_h
bef[1] = 1
K.times{|c|
  b = 0
  bef.each{|k, v|
    b = (b + v) % MOD
    nxt[a[k][0]] = (b * a[k][1]) % MOD
  }
  bef = nxt.sort{|(k1, v1), (k2, v2)| k2 <=> k1}
}

ans, b = [0, 0]
nxt.sort{|(k1, v1), (k2, v2)| k2 <=> k1}.each{|k, v|
  b += v
  ans = (ans + b * a[k][1]) % MOD
}

puts ans