# https://yukicoder.me/problems/no/1659 import math MOD = 10 ** 9 + 7 def main(): N, K = map(int, input().split()) # 素因数分解 sqrt_n = int(math.sqrt(N)) p_map = {} for p in range(2, sqrt_n + 1): if N % p == 0: p_map[p] = 0 while N % p == 0: p_map[p] += 1 N //= p if N > 1: p_map[N] = 1 answer = 1 for value in p_map.values(): ans0 = 0 for v in range(value + 1): x = v + K - 1 n = v ans = 1 for _ in range(v): ans *= x ans %= MOD ans *= pow(n, MOD - 2, MOD) ans %= MOD x -= 1 n -= 1 ans0 += ans ans0 %= MOD answer *= ans0 answer %= MOD print(answer) if __name__ == "__main__": main()