#include<stdio.h>
#include<math.h>
int a[1000000];
double bits(int n)
{
double bit=0;
while(n>0)
{
bit+=log10(n);
n--;
}
return bit;
}
int is_p(int a,int b)
{
int temp,found=0;
if(a<b)
{
temp=a;
a=b;
b=temp;
}
temp=b;
while(a%temp!=0||b%temp!=0)
{
temp--;
}
return temp;
}
int main()
{
double s;
long i,j,N,base,b,c,n,bit,tail;
while(scanf("%ld%ld",&n,&base)!=EOF)
{
s=bits(n)/log10(base)+1e-10;
bit=(int)ceil(s);
if(n==0)
{
printf("0 1\n");
continue;
}
tail=0;
N=0;
for(i=2;i<=n;i++)
{
j=i;
while(j%base==0)
{
j/=base;
tail++;
}
j=is_p(j,base);
if(j!=1)
a[N++]=j;
}
for(i=0;i<bit;i++)
{
b=base;
for(j=0;j<N;j++)
{
if(a[j]!=1)
{
c=is_p(b,a[j]);
if(c!=1)
{
b/=c;
a[j]/=c;
}
}
if(b==1)
break;
if(c==1)
continue;
}
if(b!=1)
break;
}
tail+=i;
printf("%ld %ld\n",tail,bit);
}
return 0;
}