BigNum a, b, c, d;

char out[60005];

int main ()
{
    
char in[50];
    
int flag;
    
int n;
    
int i, j;

    
while ( scanf ( "%s%d"&in&n ) != EOF )
    
{
        
int len = strlen ( in );
        flag 
= 0;
        
for ( i=0; i<len; i++ )
        
{
            
if ( in[i] == '.' )
            
{
                flag 
= ( len - i - 1 ) * n;
                
for ( j=i+1; j<len; j++ )
                
{
                    
in[j-1= in[j];
                }

                
in[j] = in[j+1];
                len 
--;
                
break;
            }

        }


        a.
set ( "1"1 );
        b.
set ( in, len );
        c.
set ( "0"1 );

        
if ( ! Cmp ( b, c ) )
        
{
            printf ( 
"0\n" );
            
continue;
        }


        
while ( n != 0 )
        
{
            
if ( n & 1 )
            
{
                Mul ( a, b, c );
                Cpy (a, c);
            }

            Cpy ( d, b );
            Mul ( b, d, c );
            Cpy ( b, c );
            n 
>>= 1;

        }


        
int l;
        
int count = 0;
        
int p = 0;
        b.
set ( "0"1 );
        
while ( Cmp ( a, b ) || count <= flag )
        
{
            Div ( a, 
10, l );
            
if ( count == flag && flag )
            
{
                
out[p++= '.';
            }

            
out[p++= (char)(l + '0');
            count 
++;
        }


        
out[p] = '\0';
        
for ( i=0; i<p-1; i++ )
        
{
            
if ( out[i] == '0' )
            
{
                
out[i] = 0;
            }

            
else
            
{
                
if ( out[i] == '.' )
                
{
                    
out[i] = 0
                }

                
break;
            }

        }


        
if ( p>1 && out[p-1== '0' )
        
{
            p 
--;
        }

        
for ( i=p-1out[i]!=0; i-- )
        
{
            printf ( 
"%c"out[i] );
        }

        printf ( 
"\n" );

    }

    
return 0;
}