#include <bits/stdc++.h>
#define Len 1300
using namespace std;
void input(int x[]){
string s;
cin>>s;
for(int i=0;i<s.size();i++)
x[s.size()-i-1]=s[i]-'0';
}
void print(int x[]){
int i;
for(i=Len-1;i>=1;--i)
if(x[i]!=0)
break;
for(;i>=0;--i)
cout<<x[i];
}
void add(int a[],int b[],int c[]){
for(int i=0;i<Len-1;++i){
c[i]+=a[i]+b[i];
if(c[i]>=10){
c[i+1]=1;
c[i]-=10;
}
}
}
void sub(int a[],int b[],int c[]){
for(int i=0;i<Len-1;++i){
c[i]+=a[i]-b[i];
if(c[i]<0){
c[i+1]=-1;
c[i]+=10;
}
}
}
void nul(int a[],int b[],int c[]){
for(int i=0;i<Len-1;++i){
for(int j=0;j<=i;++j)
c[i]+=a[j]*b[i-j];
if(c[i]>=10){
c[i+1]=c[i]/10;
c[i]%=10;
}
}
}
string g;
int a[Len],b[Len],c[Len],n,lena,cnt,jj,lenc,flag;
bool sss;
int main(){
std::ios::sync_with_stdio(0);
while(cin>>g>>n){
if(n==0){
cout<<1<<'\n';
continue;
}
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
lena=lenc=cnt=flag=sss=jj=0;
string s,k;
for(int i=0;i<g.size();i++){
if(g[i]=='.'){
sss=1;
break;
}
if(g[i]!='0')
flag=1;
if(flag==1){
s+=g[i];
}
}
flag=0;
for(int i=g.size()-1;i>=0;i--){
if(g[i]=='.'){
break;
}
if(g[i]!='0')
flag=1;
if(flag==1){
k+=g[i];
}
}
for(int i=k.size()-1;i>=0;i--)
s+=k[i];
lenc=k.size()*n;
for(int i=0;i<s.size();i++)
a[s.size()-i-1]=s[i]-'0';
// print(a);
// cout<<'\n';
memcpy(c,a,sizeof(c));
for(int i=1;i<n;i++){
memcpy(b,c,sizeof(b));
// print(b);
memset(c,0,sizeof(c));
nul(a,b,c);
}
int i;
for(i=Len-1;i>=1;--i)
if(c[i]!=0)
break;
jj=i;
bool ddd=1;
if(lenc>i+1){
cout<<'.';
for(int j=1;j<=lenc-i-1;j++)
cout<<0;
ddd=0;
}
for(;i>=0;--i){
cout<<c[i];
if(++cnt==jj+1-lenc&&ddd==1&&sss==1)
cout<<'.';
}
cout<<'\n';
}
return 0;
}