MOD = 10**9 + 7
import math

def main():
    M, K = map(int, input().split())

    # Create transition matrix
    # matrix_total = matrix1 + matrix2
    matrix_total = [[0]*M for _ in range(M)]

    # Compute matrix2
    matrix2 = [[0]*M for _ in range(M)]
    for a in range(M):
        for b in range(M):
            if a == 0:
                if b == 0:
                    matrix2[a][b] = M % MOD
                else:
                    matrix2[a][b] = 0
            else:
                d = math.gcd(a, M)
                if (b % d) != 0:
                    matrix2[a][b] = 0
                else:
                    matrix2[a][b] = d % MOD
    # Add matrix1 (all ones) to matrix2
    for a in range(M):
        for b in range(M):
            matrix_total[a][b] = (1 + matrix2[a][b]) % MOD

    # Matrix exponentiation functions
    def multiply(A, B):
        result = [[0]*M for _ in range(M)]
        for i in range(M):
            for k in range(M):
                a_ik = A[i][k]
                if a_ik == 0:
                    continue
                for j in range(M):
                    result[i][j] = (result[i][j] + a_ik * B[k][j]) % MOD
        return result

    def matrix_pow(mat, power):
        result = [[0]*M for _ in range(M)]
        for i in range(M):
            result[i][i] = 1
        while power > 0:
            if power % 2 == 1:
                result = multiply(result, mat)
            mat = multiply(mat, mat)
            power //= 2
        return result

    # Compute the K-th power of the matrix
    final_matrix = matrix_pow(matrix_total, K)
    print(final_matrix[0][0] % MOD)

if __name__ == "__main__":
    main()