\begin{problem}{Наименьшее общее кратное}{lcm.in}{lcm.out}{2 секунды}

%Автор задачи: Нияз Нигматуллин
%Автор условия: Нияз Нигматуллин

Вася~--- юный программист. Он уже умеет решать задачи на графы, структуры данных, комбинаторику и динамическое программирование.
Но вот с теорией чисел он еще не знаком. Поэтому он стал посещать лекции по теории чисел. На одном из первых занятий он узнал,
что такое наименьшее общее кратное.

\emph{Набором} чисел назовем множество, в котором элементы могут повторяться.

\emph{Наименьшее общее кратное} набора $S$ целых положительных чисел~--- минимальное положительное целое число, 
которое делится на каждый элемент набора $S$.

После каждого занятия преподаватель задает домашнее задание по пройденным темам. Вот и в этот раз он задал непростое задание:

\ \\

\texttt{Заданы числа $n$ и $k$, требуется определить количество таких наборов из $k$ элементов, наименьшее общее кратное которых равно $n$}

\ \\

Например, если $n = 6$ и $k = 2$, то подходящие наборы это: $\lbrace 1, 6 \rbrace$, $\lbrace 2, 3 \rbrace$, $\lbrace 2, 6 \rbrace$,
$\lbrace 3, 6 \rbrace$, $\lbrace 6, 6 \rbrace$. Поэтому ответ будет равен 5. Заметим, что наборы, отличающиеся только порядком элементов,
считаются одинаковыми.

Вася очень хорошо усвоил лекцию, а также он очень смышленный мальчик, поэтому он уже решил задачу. Но он не уверен в том, что все
сделал правильно. Вася просит вас помочь проверить его программу: решите эту же задачу и найдите ответы на некоторые тесты. 
Так как ответ может быть очень большим, Вася решил, что ему достаточно буде знать остаток от деления ответа на $10^9+7$.

\InputFile

В первой строке входного файла через пробел заданы числа $n$ ($1 \le n \le 10^{12}$) и $k$ ($1 \le k \le 100$).
 
\OutputFile

В выходной файл требуется вывести одно число: ответ по модулю $10^9+7$.

\Examples
\begin{example}%
\exmp{
6 2
}{
5
}%
\exmp{
239 3
}{   
3
}%
\end{example}

\Note
Решения работающие для $n \le 10^9$ и $k \le 20$ будут оцениваться из 50 баллов.  


\end{problem}
