#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
****************************************************************/