#include <bits/stdc++.h>
using namespace std;
string trimLeft(string str) {
if (!str.size()) return "";
int i = 0;
while (str[i] == ' ' || str[i] == '0') {
i++;
}
return str.substr(i);
}
int getFirstInvalidIndex(string str) {
if (!str.size()) return 0;
int index = 0;
while (isdigit(str[index])) {
index++;
}
return index;
}
int myAtoi (string str) {
if (!str.size()) return 0;
bool hasNegativeSymbol = str[0] == '-';
bool hasPositiveSymbol = str[0] == '+';
string s = (hasNegativeSymbol || hasPositiveSymbol) ? str.substr(1) : str;
s = trimLeft(s);
int firstInvalidIndex = getFirstInvalidIndex(s);
if (firstInvalidIndex == s.size() && !isdigit(s[s.size() - 1])) return 0;
s = s.substr(0, firstInvalidIndex);
int size = s.size(), result = 0, currentPower = 0;
for (int i = size - 1; i >= 0; i--) {
int currentNumber = s[i] - '0';
result = result + (currentNumber * pow(10, currentPower++));
}
return hasNegativeSymbol ? -result : result;
}
int main() {
string s;
while (cin >> s) {
cout << myAtoi(s) << endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJpbmcgdHJpbUxlZnQoc3RyaW5nIHN0cikgewoJaWYgKCFzdHIuc2l6ZSgpKSByZXR1cm4gIiI7CglpbnQgaSA9IDA7Cgl3aGlsZSAoc3RyW2ldID09ICcgJyB8fCBzdHJbaV0gPT0gJzAnKSB7CgkJaSsrOwoJfQoJCglyZXR1cm4gc3RyLnN1YnN0cihpKTsKfQoKCmludCBnZXRGaXJzdEludmFsaWRJbmRleChzdHJpbmcgc3RyKSB7CglpZiAoIXN0ci5zaXplKCkpIHJldHVybiAwOwoJaW50IGluZGV4ID0gMDsKCQoJd2hpbGUgKGlzZGlnaXQoc3RyW2luZGV4XSkpIHsKCQlpbmRleCsrOwoJfQoJCglyZXR1cm4gaW5kZXg7Cn0KCmludCBteUF0b2kgKHN0cmluZyBzdHIpIHsKCWlmICghc3RyLnNpemUoKSkgcmV0dXJuIDA7CgkKCWJvb2wgaGFzTmVnYXRpdmVTeW1ib2wgPSBzdHJbMF0gPT0gJy0nOwoJYm9vbCBoYXNQb3NpdGl2ZVN5bWJvbCA9IHN0clswXSA9PSAnKyc7CglzdHJpbmcgcyA9IChoYXNOZWdhdGl2ZVN5bWJvbCB8fCBoYXNQb3NpdGl2ZVN5bWJvbCkgPyBzdHIuc3Vic3RyKDEpIDogc3RyOwoJCglzID0gdHJpbUxlZnQocyk7CgoJaW50IGZpcnN0SW52YWxpZEluZGV4ID0gZ2V0Rmlyc3RJbnZhbGlkSW5kZXgocyk7CglpZiAoZmlyc3RJbnZhbGlkSW5kZXggPT0gcy5zaXplKCkgJiYgIWlzZGlnaXQoc1tzLnNpemUoKSAtIDFdKSkgcmV0dXJuIDA7CgkKCXMgPSBzLnN1YnN0cigwLCBmaXJzdEludmFsaWRJbmRleCk7CgoJaW50IHNpemUgPSBzLnNpemUoKSwgcmVzdWx0ID0gMCwgY3VycmVudFBvd2VyID0gMDsKCQoJZm9yIChpbnQgaSA9IHNpemUgLSAxOyBpID49IDA7IGktLSkgewoJCWludCBjdXJyZW50TnVtYmVyID0gc1tpXSAtICcwJzsKCQlyZXN1bHQgPSByZXN1bHQgKyAoY3VycmVudE51bWJlciAqIHBvdygxMCwgY3VycmVudFBvd2VyKyspKTsKCX0KCQoJcmV0dXJuIGhhc05lZ2F0aXZlU3ltYm9sID8gLXJlc3VsdCA6IHJlc3VsdDsKfQoKaW50IG1haW4oKSB7CglzdHJpbmcgczsKCgl3aGlsZSAoY2luID4+IHMpIHsKCQljb3V0IDw8IG15QXRvaShzKSA8PCBlbmRsOwoJfQoKCXJldHVybiAwOwp9