#include <bits/stdc++.h>
using namespace std;
char a[50005], m;
int main() {
  while (scanf("%s", a) != EOF) {
    int flag1, flag2, num = 0;
    for (int i = 0; i < strlen(a); i++) {
      if (a[i] == '.')
        flag1 = i;
      else if (a[i] == 'e') {
        flag2 = i;
        for (int j = i + 1; j < strlen(a); j++) {
          num = num * 10 + (a[j] - '0');
        }
      }
    }
    if (num == 0) {
      int sum = 0, sum2 = 0;
      for (int i = 0; i < flag2; i++) {
        if (a[i] == '0' || a[i] == '.') {
          sum = 1;
        } else {
          sum = 0;
          break;
        }
      }
      for (int i = flag1 + 1; i < flag2; i++) {
        if (a[i] == '0') {
          sum2 = 1;
        } else {
          sum2 = 0;
          break;
        }
      }
      if (sum)
        printf("0\n");
      else if (sum2) {
        for (int i = 0; i < flag1; i++) {
          printf("%c", a[i]);
        }
      } else {
        for (int i = 0; i < flag2; i++) {
          printf("%c", a[i]);
        }
      }
      printf("\n");
    } else {
      if (flag2 - flag1 - 1 > num) {
        for (int i = flag1 + 1; i < flag2; i++) {
          a[i - 1] = a[i];
        }
        for (int i = 0; i < flag1 + num; i++) {
          printf("%c", a[i]);
        }
        printf(".");
        for (int i = flag1 + num; i < flag2 - 1; i++) {
          printf("%c", a[i]);
        }
        printf("\n");
      } else if (flag2 - flag1 - 1 < num) {
        for (int i = 0; i < flag2; i++) {
          if (a[i] != '.') {
            printf("%c", a[i]);
          }
        }
        for (int i = 0; i < num - (flag2 - flag1 - 1); i++) {
          printf("0");
        }
        printf("\n");
      } else if (flag2 - flag1 - 1 == num) {
        for (int i = 0; i < flag2; i++) {
          if (a[i] != '.') {
            printf("%c", a[i]);
          }
        }
        printf("\n");
      }
    }
  }
}
