#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define _CRT_SECURE_NO_WARNINGS #define REP(i, n) for(int i=0; i<(n); i++) #define FOR(i, m, n) for(int i=(m);i<(n);i++) #define SZ(x) ((int)(x).size()) #define ALL(x) (x).begin(),(x).end() #define SORT(x) sort((x).begin(),(x).end()) #define REVE(x) reverse((x).begin(),(x).end()) #define MP make_pair #define PB push_back typedef vector VI; typedef vector VS; typedef vector> VVI; typedef pair PII; typedef long long LL; LL keta(LL n) { LL k = 0; for (LL i = n; i > 0; i /= 10)k = k + 1; return k; } int main() { string a, b; cin >> a >> b; bool flaga, flagb; if (a[0] != '-') { if ('1' <= a[0] && a[0] <= '9'&&SZ(a) - 1 == count(ALL(a), '0'))flaga = true; else flaga = false; } else { if (a[0] == '-'&&'1' <= a[1] && a[1] <= '9'&&SZ(a) - 2 == count(ALL(a), '0'))flaga = true; else flaga = false; } if (b[0] != '-') { if ('1' <= b[0] && b[0] <= '9'&&SZ(b) - 1 == count(ALL(b), '0'))flagb = true; else flagb = false; } else { if (b[0] == '-'&&'1' <= b[1] && b[1] <= '9'&&SZ(b) - 2 == count(ALL(b), '0'))flagb = true; else flagb = false; } LL A = stoll(a), B = stoll(b); LL ans = A * B; if (flaga&&flagb) { string Ans = to_string(ans); Ans.pop_back(); cout << Ans << endl; } else { if (ans >= -100000000 && 100000000 >= ans) { cout << ans << endl; } else { puts("E"); } } }