#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#define MaxD 10000
using namespace std;
long long N,D[MaxD],K;
int mat[MaxD][MaxD],d;
int F(int &X,int div1,int div2)
{
while(D[X]<D[div1]/D[div2])
X++;
if(D[X]>D[div1]/D[div2])X--;
return X;
}
int main()
{
freopen("desc.in","r",stdin);
freopen("desc.out","w",stdout);
scanf("%lld%lld",&N,&K);
for(long long i=2;i*i<=N;i++)
if(N%i==0)D[++d]=i,D[++d]=N/i;
if(D[d]==D[d-1])d--;
D[++d]=N;
sort(D+1,D+1+d);
for(int i=1;i<=d;i++)
mat[0][i]=1;
for(int i=1;i<=d;i++)
{
int X=0;
for(int j=d;j>0;j--)
{
mat[i][j]=mat[i][j+1];
if(D[i]%D[j]==0)
mat[i][j]+=mat[F(X,i,j)][j];
}
}
printf("%d \n",mat[d][1]);
return 0;
}