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)

def max_array(n)
  m = (n**0.5).to_i
  a = [1] * m
  (N / m - 1).downto(1) do |i|
    add  = n / i - n / (i + 1) 
    a << add unless add.zero?
  end
  a
end

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

dp = Array.new(K) { Array.new(array.size, 0) }

array.size.times { |i| dp[0][i] = array[i] }

1.upto(K - 1) do |i|
  a = dp[i - 1].inject(0, &:+)
  array.size.times do |j|
    dp[i][j] = (a * array[j]) % MOD
    a -= dp[i - 1][array.size - 1 - j]
  end
end

ans = 0
array.size.times do |i|
  ans += dp[K - 1][i]
end
ans %= MOD

puts ans