#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
class Double
{
public:
Double(const char * s);
operator double() const { return sign*v*pow(10,ex*exsn); }
private:
int start(char c);
int zero (char c);
int one (char c);
int two (char c);
int three(char c);
int four (char c);
int five (char c);
double v = 0;
int sign = 1;
int ex = 0;
int exsn = 1;
int state = -1;
double p = 10;
};
Double::Double(const char * s)
{
if ((state = start(*s++)) < 0) return;
for(;*s;++s)
{
switch(state)
{
case 0: state = zero (*s); break;
case 1: state = one (*s); break;
case 2: state = two (*s); break;
case 3: state = three(*s); break;
case 4: state = four (*s); break;
case 5: state = five (*s); break;
default: return;
}
}
}
int Double::start(char c)
{
if (c == '-' || c == '+') { sign = (c == '-') ? -1 : 1; return 0; }
if (c == '.') return 2;
if (isdigit(c)) { v = v*10 + (c-'0'); return 1; }
return -1;
}
int Double::zero(char c)
{
if (c == '.') return 2;
if (isdigit(c)) { v = v*10 + (c-'0'); return 1; }
return -1;
}
int Double::one(char c)
{
if (c == '.') return 2;
if (c == 'e' || c == 'E') return 4;
if (isdigit(c)) { v = v*10 + (c-'0'); return 1; }
return -1;
}
int Double::two(char c)
{
if (isdigit(c)) { v = v + (c-'0')/p; p*=10; return 3; }
return -1;
}
int Double::three(char c)
{
if (isdigit(c)) { v = v + (c-'0')/p; p*=10; return 3; }
if (c == 'e' || c == 'E') return 4;
return -1;
}
int Double::four(char c)
{
if (c == '-' || c == '+') { exsn = (c == '-') ? -1 : 1; return 5; }
if (isdigit(c)) { ex = ex*10 + (c-'0'); return 5; }
return -1;
}
int Double::five(char c)
{
if (isdigit(c)) { ex = ex*10 + (c-'0'); return 5; }
return -1;
}
int main(int argc, char * argv[])
{
string s;
while(cin >> s)
{
cout << setw(15) << s << " " << setprecision(25) << Double(s.c_str()) << endl;
}
}