#include <bits/stdc++.h>
using namespace std;
template <typename t>
ostream& operator,(ostream& os, t x) {
  return os << ' ' << x;
}
string s;
string prefix;
int suf = 0;
int dec__ = 0;
string res;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cin >> s;
  bool flag = false;
  for (int i = 0; i < s.size(); i++) {
    if (s[i] == 'e') {
      flag = true;
      continue;
    }
    if (!flag) {
      prefix += s[i];
    } else {
      suf *= 10;
      suf += s[i] - '0';
    }
  }
  flag = false;
  for (int i = 0; i < prefix.size(); i++) {
    if (prefix[i] == '.') {
      flag = true;
      continue;
    }
    if (flag) dec__++;
  }
  if (suf == 0) {
    if (dec__ == 0) {
      for (int i = 0; i < prefix.size() - 1; i++) cout << prefix[i];
    } else {
      if (prefix.back() == '0')
        for (int i = 0; i < prefix.size() - 2; i++) cout << prefix[i];
      else
        cout << prefix;
    }
    return 0;
  }
  if (suf >= dec__) {
    for (int i = 0; i < prefix.size(); i++)
      if (prefix[i] != '.') res += prefix[i];
    for (int i = 1; i <= suf - dec__; i++) res += "0";
    while (res[0] == '0') res.erase(res.begin());
    cout << res << '\n';
  } else {
    int left = dec__ - suf;
    bool flag = false;
    for (int i = 0; i < prefix.size(); i++) {
      if (prefix[i] == '.') {
        flag = true;
        continue;
      }
      if (!flag)
        res += prefix[i];
      else {
        res += prefix[i];
        dec__--;
        if (dec__ == left) {
          res += '.';
          for (int j = i + 1; j < prefix.size(); j++) res += prefix[j];
          break;
        }
      }
    }
    while (res[0] == '0' && res[1] != '.') res.erase(res.begin());
    cout << res << '\n';
  }
}
