output_description: Print the number of sequences, modulo 10^9+7.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N K
attempt: MOD = 10**9 + 7
  
  
  def main():
      N, K = map(int, input().strip().split())
      dp1 = {}
      dp2 = {}
  
      counter = {}
      i = 1
      while i < N:
          v = N // i
          j = N // v
          counter[v] = j - i + 1
          i += j - i + 1
  
      keys = sorted(counter.items(), reverse=True)
  
      total = 0
      for nj, v in keys:
          total += v
          dp1[nj] = total
  
      for i in range(2, K + 1):
          dp2 = {}
          # dp[i] = {}
          total = 0
          for nj, w in keys:
              j = N // nj
              v = dp1[j] * w
              total += v
              total %= MOD
              dp2[nj] = total
  
          dp1 = dp2
  
      return dp2[1]
      # for k, v in dp.items():
      #   print(k, sorted(v.items(), reverse=True))
  
      # return dp[K][1]
  
  
  if __name__ == "__main__":
      print(main())
  
problem_description: 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.
samples: [{"input": "3 2", "output": "5\n    \n\n(1,1), (1,2), (1,3), (2,1), and (3,1) satisfy the condition.\n\n* * *"}, {"input": "10 3", "output": "147\n    \n\n* * *"}, {"input": "314159265 35", "output": "457397712"}]