#include<stdio.h>
#define maxn 3000
#include<string.h>
#include<iostream>
using namespace std;
int len1,len2;
int a[maxn],b[maxn],c[maxn];
char str[maxn];
void mul(int a[],int b[])
{
int i,j;
memset(c,0,sizeof(c));
for(i=0;i<len1;i++)
{
for(j=0;j<len2;j++)
{
c[i+j]+=a[i]*b[j];
}
}
for(i=0;i<len1+len2;i++)
{
if(c[i]>=10)
{
c[i+1]+=c[i]/10;
c[i]=c[i]%10;
}
}
for(i=len1+len2;i>=0;i--)
{
if(c[i]!=0)break;
}
if(i==-1)len2=0;
else len2=i+1;
for(i=0;i<len2;i++)
{
b[i]=c[i];
}
}
int main()
{
int i,d;
while(cin>>str>>d)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
int len=strlen(str);
int f=0,k=0;
for(i=len-1;i>=0;i--)
{
if(str[i]=='.'){f=1;k=i;}
}
if(d==0){printf("1\n");continue;}
len1=0;
for(i=0;i<len;i++)
{
if(str[len-1-i]!='.')
a[len1++]=str[len-1-i]-'0';
}
b[0]=1;
len2=1;
int l=d;
while(l--)
{
mul(a,b);
}
if(f==0)
{
for(i=len2-1;i>=0;i--)
{
printf("%d",b[i]);
}
}
else
{
char str2[maxn];
int num=(len-1-k)*d;
int l,r;
if(len2<=num)
{
str2[num]='.';
for(i=num-1;i>=len2;i--)str2[i]='0';
for(i=len2-1;i>=0;i--)str2[i]='0'+b[i];
len2=num+1;
l=0;
for(i=0;i<len2;i++)
{
if(str2[i]!='0')
{
l=i;
break;
}
}
r=len2-1;
for(i=len2-1;i>=0;i--)
{
if(str2[i]!='0'){r=i;break;}
}
for(i=r;i>=l;i--)printf("%c",str2[i]);
}
else
{
int h=0;
for(h=len2,i=len2-1;i>=0;i--)
{
if(i== num -1)str2[h--]='.';
str2[h--]='0'+b[i];
}
l=0;
for(i=0;i<=len2;i++)
{
if(str2[i]!='0'){l=i;break;}
}
if(l==num)l++;
r=len2;
for(i=len2;i>=0;i--)
{
if(str2[i]!='0'){r=i;break;}
}
for(i=r;i>=l;i--)printf("%c",str2[i]);
}
}
printf("\n");
}
}