mod = 10 ** 9 + 7 N, K = map(int, input().split()) if N == 1: print(1) exit() pe = {} if N % 2 == 0: e = 0 while N % 2 == 0: N //= 2 e += 1 pe[2] = e p = 3 while p * p <= N: if N % p == 0: e = 0 while N % p == 0: N //= p e += 1 pe[p] = e p += 2 if N > 1: pe[N] = 1 l = max(pe.values()) K %= mod coef = [1] * (l + 1) inv = [1] * (l + 1) for i in range(2, l + 1): inv[i] = mod - mod // i * inv[mod % i] % mod for i in range(1, l + 1): coef[i] = coef[i - 1] * (K + i) % mod * inv[i] % mod ans = 1 for e in pe.values(): ans = ans * coef[e] % mod print(ans)