#include<bits/stdc++.h>
using namespace std;
char s[10];
int a[1010], b[1010], c[1010], n, w;
void zhuan(int x[])
{
int ls = strlen(s), p, j = 0;
for(p = 0;p < ls;p ++) if(s[p] == '.') break;
for(int i = ls - 1;i >= 0;i --)
{
if(s[i] == '.') continue;
x[++j] = s[i] - '0';
}
x[0] = j;
w = (ls - p - 1) * n;
}
int main()
{
while(cin >> s >> n)
{
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
zhuan(a);
// for(int i = a[0];i >= 1;i --) cout << a[i];
// cout << endl;
memcpy(b, a, sizeof(b));
for(int i = 1;i < n;i ++)
{
memset(c, 0, sizeof(c));
c[0] = a[0] + b[0];
for(int j = 1;j <= a[0];j ++)
for(int k = 1;k <= b[0];k ++)
{
c[j + k - 1] += a[j] * b[k];
c[j + k] += c[j + k - 1] / 10;
c[j + k - 1] %= 10;
}
while(c[c[0]] == 0 && c[0] > 1) c[0] --;
memset(a, 0, sizeof(a));
memcpy(a, c, sizeof(a));
}
int l = 1;
while(a[l] == 0 && l <= w) l ++;
for(int i = a[0];i > w;i --) cout << a[i];
if(l <= w) cout << ".";
for(int i = w;i >= l;i --) cout << a[i];
cout << endl;
}
return 0;
}