#include <bits/stdc++.h>
using namespace std;
void JIZZ() {
  cout << "";
  exit(0);
}
const long double PI = 3.14159265358979323846264338327950288;
const long double eps = 1e-8;
const long long mod = 1e9 + 7;
int main() {
  string s;
  cin >> s;
  string ss = s;
  {
    bool find = 0;
    for (char c : ss)
      if (c == '.') find = 1;
    if (!find) ss += ".";
  }
  {
    string sss;
    int ptr = 0;
    while (ptr < ss.length() && ss[ptr] == '0') ++ptr;
    while (ptr < ss.length()) sss += ss[ptr++];
    ss = sss;
    sss = "";
    ;
    ;
    ptr = ss.length() - 1;
    while (ptr >= 0 && ss[ptr] == '0') --ptr;
    while (ptr >= 0) sss += ss[ptr--];
    ss = "";
    ;
    ;
    ptr = sss.length() - 1;
    while (ptr < sss.length()) ss += sss[ptr--];
    ;
    ;
  };
  ;
  {
    int mean = 0, i = 0, E = 0;
    for (; i < ss.length(); ++i) {
      if (ss[i] == '.') break;
      ++mean;
    };
    ;
    while (mean > 1) {
      ++E;
      swap(ss[i], ss[i - 1]);
      --i;
      --mean;
      ;
      ;
    }
    while (mean == 0) {
      --E;
      swap(ss[i], ss[i + 1]);
      ++i;
      if (ss[i - 1] != '0') ++mean;
    }
    string sss;
    int ptr = 0;
    while (ptr < ss.length() && ss[ptr] == '0') ++ptr;
    while (ptr < ss.length()) sss += ss[ptr++];
    ss = sss;
    sss = "";
    ptr = ss.length() - 1;
    while (ptr >= 0 && ss[ptr] == '0') --ptr;
    while (ptr >= 0) sss += ss[ptr--];
    ss = "";
    ptr = sss.length() - 1;
    while (ptr < sss.length()) ss += sss[ptr--];
    if (ss[ss.length() - 1] == '.') ss = ss.substr(0, ss.length() - 1);
    if (E)
      cout << ss << "E" << E << endl;
    else
      cout << ss << endl;
  }
}
