MOD = 10**9 + 7 def comb_mod(a, b): if b < 0 or b > a: return 0 if b == 0: return 1 numerator = 1 denominator = 1 for i in range(b): numerator = numerator * (a - i) % MOD denominator = denominator * (i + 1) % MOD return numerator * pow(denominator, MOD - 2, MOD) % MOD def lucas(n, k): if k == 0: return 1 a = n % MOD b = k % MOD if b > a: return 0 return (comb_mod(a, b) * lucas(n // MOD, k // MOD)) % MOD def factorize(n): factors = {} while n % 2 == 0: factors[2] = factors.get(2, 0) + 1 n //= 2 i = 3 while i * i <= n: while n % i == 0: factors[i] = factors.get(i, 0) + 1 n //= i i += 2 if n > 1: factors[n] = 1 return factors def solve(): N, K = map(int, input().split()) factors = factorize(N) if not factors: print(1) return result = 1 for p, e in factors.items(): n = e + K res = lucas(n, K) result = (result * res) % MOD print(result) if __name__ == "__main__": solve()