#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#define MAX 110
using namespace std;
char s[200];
int k;
int result[MAX];
void work(int a[], int b[], int b1, int c[],int c1)
{
int i,j;
for(i=0;i<c1;i++)
{
c[i]=0;
}
if (b1 > c1) b1 = c1;
for(i=0; i<b1; i++)
{
if (b[i])
{
for(j=0; j<c1-i; j++)
{
c[i+j] = a[j]*b[i] + c[i+j];
c[i+j+1]= c[i+j+1] + c[j+i]/10;
c[i+j] = c[i+j]%10;
}
}
}
}
int main()
{
int a[MAX],b[MAX],c[MAX],aa[MAX];
int i,j,tp,num,n;
cin>>s>>k;
n=strlen(s);
for(i=0;i<n;i++)
a[n-i-1] = s[i] - '0';
for (i=0; i<k; i++) aa[i] = a[i];
result[0]=1;
for(i=0; i<k; i++)
{
for(j=0;j<=i;j++) b[j]=aa[j];
tp=b[i];
num=0;
do
{
work(a, b, i+1, c, i+1);
num++;
for(n=0; n<k; n++)
b[n]=c[n];
}while ((num<10) && (b[i]!=tp));
if(b[i]!=tp)
{
cout<<-1<<endl;
return 0;
}
for(j=0;j<k;j++)
b[j] = a[j];
for(j=0;j<num-1;j++)
{
work(a, b, k, c, k);
for(n=0;n<MAX;n++)
a[n]=c[n];
}
work(result, &num,1, c, MAX);
for(n=0; n<MAX; n++)
result[n]=c[n];
}
for (i=MAX-1; result[i]==0; i--);
for( /*posi*/; i>=0 ; i--)
cout<<result[i];
return 0;
}
/**************************************************************
Problem: 2255
User: admin
Language: C++
Result: Accepted
Time:101 ms
Memory:2076 kb
****************************************************************/