#include <bits/stdc++.h>
using namespace std;
int n,k;
int s[1001];
char ys[1001];
int a[1001];
int b[1001];
bool pd()
{
for(int i=1;i<=k;i++)
{
if(a[i]!=b[i])
{
return false;
}
}
return true;
}
void mul()
{
int zj[1001];
memset(zj,0,sizeof(zj));
for(int i=1;i<=k;i++)
{
for(int j=1;j<=k;j++)
{
if(k-(k-i+1)*(k-j+1)+1>0)
{
zj[k-(k-i+1)-(k-j+1)+1]+=b[i]*a[j];
}
}
}
for(int i=k;i>=1;i--)
{
int p=b[i];
b[i]=(zj[i]+p)%10;
b[i-1]+=(zj[i]+p)/10;
}
}
int main()
{
cin>>ys>>k;
int len=strlen(ys);
for(int i=0;i<len;i++)
{
s[i]=ys[i]-'0';
}
int cnt=k;
for(int i=len-1;i>=len-k;i--)
{
a[cnt--]=s[i];
}
b[k]=1;
mul();
mul();
memcpy(a,b,sizeof(a));
memset(b,0,sizeof(b));
b[k]=1;
for(int ji=1;ji<=11;ji++)
{
mul();
if(pd()==true)
{
cout<<ji<<endl;
return 0;
}
}
cout<<-1<<endl;
return 0;
}