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()