#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const int MAXN = 1e5 + 50;
const double EXP = 1e-8;
string s;
void deletePreZero() {
  int i;
  for (i = 0; s[i] == '0' && i < s.size() - 1; i++)
    ;
  s = s.substr(i, s.size() - i);
}
void deleteAftZero() {
  while (s[s.size() - 1] == '0') s.erase(s.size() - 1, 1);
}
int findPos() {
  int pos = -1, i = 0;
  while (i < s.size()) {
    if (s[i] == '.') pos = i;
    i++;
  }
  return pos;
}
int main() {
  while (cin >> s) {
    deletePreZero();
    int pos = findPos(), cnt = 0;
    if (pos != -1) {
      deleteAftZero();
      if (s[s.size() - 1] == '.') {
        s.erase(s.size() - 1, 1);
        cnt = s.size() - 1;
        if (s.size() == 0) {
          s = "0";
          cnt = 0;
        } else {
          s.insert(1, ".");
          deleteAftZero();
          if (s[s.size() - 1] == '.') s.erase(s.size() - 1, 1);
        }
      } else {
        cnt = pos - 1;
        s.erase(pos, 1);
        s.insert(1, ".");
      }
      if (s[0] == '0' && s[1] == '.' && s.size() != 1) {
        s.erase(0, 2);
        cnt--;
        int i;
        for (i = 0; s[i] == '0'; i++)
          ;
        s = s.substr(i, s.size() - i);
        cnt -= i;
      }
      if (cnt != 0) {
        pos = findPos();
        if (pos == -1) s.insert(1, ".");
      }
    } else {
      cnt = s.size() - 1;
      s.insert(1, ".");
      deleteAftZero();
      if (s[s.size() - 1] == '.') s.erase(s.size() - 1, 1);
    }
    if (s[s.size() - 1] == '.') s.erase(s.size() - 1, 1);
    cout << s;
    if (cnt != 0) cout << "E" << cnt;
    cout << endl;
  }
  return 0;
}
