#include <iostream>
#include <vector>
#include <string.h>
#include <stack>
#include <queue>
#include <algorithm>
#include <climits>
#include <cmath>
#include <map>
#include <set>
#include <assert.h>
#define REP(i,n) for(ll i=0;i<(n);i++)
#define MOD 1000000007
#define int long long
#ifdef int
const long long INF = LLONG_MAX / 10;
#else
const int INF = 1010101010;
#endif
using namespace std;
typedef long long ll;
typedef vector<vector<ll> > mat;
typedef pair<int, int> P;
//typedef pair<double, double> P;
const int dx[9] = {-1, 0, 0, 1, -1, -1, 1, 1, 0};
const int dy[9] = {0, -1, 1, 0, -1, 1, -1, 1, 0};
 
string N;
 
signed main()
{
  cin >> N;
  int num[3];
  REP(i,3) {
    num[i] = N[i] - '0';
  }

  if (num[0] == 9 && num[1] == 9 && num[2] >= 5) {
    //assert(false);
    cout << "1.0*10^" << N.length() << endl;
    return 0;
  }

  if (num[2] >= 5) {
    num[1]++;
    if (num[1] == 10) {
      num[1] = 0;
      num[0]++;
    }
  }
  cout << num[0] << "." << num[1] << "*10^" << N.length() - 1 << endl;
}