Problem: You are given a positive decimal number x.

Your task is to convert it to the "simple exponential notation".

Let x = a·10b, where 1 ≤ a < 10, then in general case the "simple exponential notation" looks like "aEb". If b equals to zero, the part "Eb" should be skipped. If a is an integer, it should be written without decimal point. Also there should not be extra zeroes in a and b.

Input

The only line contains the positive decimal number x. The length of the line will not exceed 106. Note that you are given too large number, so you can't use standard built-in data types "float", "double" and other.

Output

Print the only line — the "simple exponential notation" of the given number x.

Examples

Input

16


Output

1.6E1


Input

01.23400


Output

1.234


Input

.100


Output

1E-1


Input

100.


Output

1E2

Solution (in PYTHON3):

Solution:

import bisect
from itertools import accumulate
import os
import sys
import math
from decimal import *
from io import BytesIO, IOBase

BUFSIZE = 8192


class FastIO(IOBase):
    newlines = 0

    def __init__(self, file):
        self._fd = file.fileno()
        self.buffer = BytesIO()
        self.writable = "x" in file.mode or "r" not in file.mode
        self.write = self.buffer.write if self.writable else None

    def read(self):
        while True:
            b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
            if not b:
                break
            ptr = self.buffer.tell()
            self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
        self.newlines = 0
        return self.buffer.read()

    def readline(self):
        while self.newlines == 0:
            b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
            self.newlines = b.count(b"\n") + (not b)
            ptr = self.buffer.tell()
            self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
        self.newlines -= 1
        return self.buffer.readline()

    def flush(self):
        if self.writable:
            os.write(self._fd, self.buffer.getvalue())
            self.buffer.truncate(0), self.buffer.seek(0)


class IOWrapper(IOBase):
    def __init__(self, file):
        self.buffer = FastIO(file)
        self.flush = self.buffer.flush
        self.writable = self.buffer.writable
        self.write = lambda s: self.buffer.write(s.encode("ascii"))
        self.read = lambda: self.buffer.read().decode("ascii")
        self.readline = lambda: self.buffer.readline().decode("ascii")


sys.stdin, sys.stdout = IOWrapper(sys.stdin), IOWrapper(sys.stdout)


def input(): return sys.stdin.readline().rstrip("\r\n")
def isPrime(n) :
    if (n <= 1) : return False
    if (n <= 3) : return True
    if (n % 2 == 0 or n % 3 == 0) : return False
    i = 5
    while(i * i <= n) :
        if (n % i == 0 or n % (i + 2) == 0) :
            return False
        i = i + 6
    return True
def SieveOfEratosthenes(n): 
    prime=[]
    primes = [True for i in range(n+1)] 
    p = 2
    while (p * p <= n): 
          
        if (primes[p] == True): 
            prime.append(p)
            for i in range(p * p, n+1, p): 
                primes[i] = False
        p += 1
    return prime
def primefactors(n):
    fac=[]
    while(n%2==0):
        fac.append(2)
        n=n//2
    for i in range(3,int(math.sqrt(n))+2):
        while(n%i==0):
            fac.append(i)
            n=n//i
    if n>1:
        fac.append(n)
    return fac
def factors(n):
    fac=set()
    fac.add(1)
    fac.add(n)
    for i in range(2,int(math.sqrt(n))+1):
        if n%i==0:
            fac.add(i)
            fac.add(n//i)
    return list(fac)
#------------------------------------------------------code by AD18
s=input()
if "." not in s:
    s=list(s)
    s=s[::-1]
    while(len(s)>0 and s[-1]=="0"):
        s.pop()
    s=s[::-1]
    c=len(s)
    if len(s)==0:
        print(0)
    elif len(s)==1:
        print("".join(s))
    else:
        while(len(s)>0 and s[-1]=="0"):
            s.pop()
        if len(s)==1:
            print(s[0]+"E"+str(c-1))
        else:
            ans=""
            ans+=s[0]+"."
            for i in range(1,len(s)):
                ans+=s[i]
            print(ans+"E"+str(c-1)) 
else:
    before,after=s.split(".")
    before=list(before)
    after=list(after)
    while(len(after)>0 and after[-1]=="0"):
        after.pop()
    before=before[::-1]
    while(len(before)>0 and before[-1]=="0"):
        before.pop()
    before=before[::-1]
    if len(before)==0 and len(after)==0:
        print(0)
    elif len(before)==0:
        ans=""
        c=0
        after=after[::-1]
        while(len(after)>0 and after[-1]=="0"):
            after.pop()
            c+=1
        after=after[::-1]
        ans+=after[0]
        if len(after)==1:
            print(ans+"E"+"-"+str(abs(c+1)))
        else:
            ans+="."
            for i in range(1,len(after)):
                ans+=after[i]
            print(ans+"E"+"-"+str(abs((c+1))))
    elif len(after)==0:
        ans=""
        c=len(before)
        while(len(before)>0 and before[-1]=="0"):
            before.pop()
        if len(before)==1:
            if c-1==0:
                print(before[0])
            else:
                print(before[0]+"E"+str(c-1))
        else:
            ans=""
            ans+=before[0]+"."
            for i in range(1,len(before)):
                ans+=before[i]
            print(ans+"E"+str(c-1))
    else:
        c=len(before)
        ans=""
        if len(before)==1:
            ans+=before[0]
            ans+="."
            for i in range(0,len(after)):
                ans+=after[i]
            print(ans)
        else:
            ans+=before[0]
            ans+="."
            for i in range(1,len(before)):
                ans+=before[i]
            for i in range(0,len(after)):
                ans+=after[i]
            print(ans+"E"+str(c-1))