def f(n,k):

    lim = int((n + 0.1) ** 0.5) + 1

    ws = []

    s = 0

    for i in range(1, lim):

        w = n // i - n // (i + 1)

        ws.append(w)

        s += w

    ws += [1] * (n - s)

    m = len(ws)

    dp0 = ws[::-1]

    dp1 = [0] * m

    for _ in range(k - 1):

        s = 0

        for j in range(m):

            s += dp0[j]

            dp1[m - j - 1] = (s * ws[j]) % md

        dp0 = dp1[:]

    print((sum(dp0) % md))

md=10**9+7

n,k=list(map(int,input().split()))

f(n,k)

from itertools import accumulate



def f(n,k):

    lim = int((n + 0.1) ** 0.5) + 1

    ws = []

    s = 0

    for i in range(1, lim):

        w = n // i - n // (i + 1)

        ws.append(w)

        s += w

    ws += [1] * (n - s)

    dp=ws

    m = len(ws)

    for _ in range(k - 1):

        dp=[s*w%md for s,w in zip(accumulate(dp[::-1]),ws)]

    print((sum(dp) % md))

md=10**9+7

n,k=list(map(int,input().split()))

f(n,k)

def f(n, k):
    lim = int((n + 0.1) ** 0.5) + 1
    ws = []
    s = 0
    for i in range(1, lim):
        w = n // i - n // (i + 1)
        ws.append(w)
        s += w
    ws += [1] * (n - s)
    m = len(ws)
    dp0 = ws[::-1]
    dp1 = [0] * m
    for _ in range(k - 1):
        s = 0
        for j in range(m):
            s += dp0[j]
            dp1[m - j - 1] = (s * ws[j]) % md
        dp0 = dp1[:]
    print((sum(dp0) % md))


md = 10**9 + 7
n, k = list(map(int, input().split()))
f(n, k)

from itertools import accumulate


def f(n, k):
    lim = int((n + 0.1) ** 0.5) + 1
    ws = []
    s = 0
    for i in range(1, lim):
        w = n // i - n // (i + 1)
        ws.append(w)
        s += w
    ws += [1] * (n - s)
    dp = ws
    m = len(ws)
    for _ in range(k - 1):
        dp = [s * w % md for s, w in zip(accumulate(dp[::-1]), ws)]
    print((sum(dp) % md))


md = 10**9 + 7
n, k = list(map(int, input().split()))
f(n, k)

+from itertools import accumulate + + +    dp = ws -    dp0 = ws[::-1] -    dp1 = [0] * m -        s = 0 -        for j in range(m): -            s += dp0[j] -            dp1[m - j - 1] = (s * ws[j]) % md -        dp0 = dp1[:] -    print((sum(dp0) % md)) +        dp = [s * w % md for s, w in zip(accumulate(dp[::-1]), ws)] +    print((sum(dp) % md))