#include <iostream>
#include <iomanip>
#include <map>
#include <set>
#include <cmath>
#include <vector>
#include <climits>
#include <string>
#include <algorithm>
#include <sstream>
using namespace std;
vector<string> split(string haystack, string needle) {
vector<string> result;
int startPos = 0;
int foundPos = haystack.find(needle, startPos);
while (foundPos != string::npos) {
int count = foundPos - startPos;
string token = haystack.substr(startPos, count);
if (!token.empty()) {
result.push_back(token);
}
startPos = foundPos + needle.length();
foundPos = haystack.find(needle, startPos);
}
string token = haystack.substr(startPos, haystack.length() - startPos);
if (!token.empty()) {
result.push_back(token);
}
return result;
}
string nameConvert(const string& name) {
const string DELIMITER = " ";
stringstream builder;
auto parts = split(name, DELIMITER);
for (auto part : parts) {
part[0] = toupper(part[0]);
transform(part.begin() + 1, part.end(), part.begin() + 1, ::tolower);
builder << part << DELIMITER;
}
return builder.str();
}
string dateConvert(const string& date) {
const string DELIMITER = "/";
stringstream builder;
auto parts = split(date, DELIMITER);
builder << setw(2) << setfill('0') << parts[0] << DELIMITER;
builder << setw(2) << setfill('0') << parts[1] << DELIMITER;
builder << parts[2];
return builder.str();
}
string maxValue(int m, int s) {
string result = "";
while (m--) {
if (s > 9) {
result = result + '9';
s = s - 9;
}
else {
result = result + to_string(s);
s = 0;
}
}
return result;
}
string minValue(int m, int s) {
string result = "";
s--;
while (m--) {
if (s > 9) {
result = result + '9';
s = s - 9;
}
else {
result = to_string(s) + result;
s = 0;
}
}
result[0]++;
return result;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
string s;cin >> s;
for (int i = 0;i < s.length();i++) {
if (!isdigit(s[i])) {
s[i] = ' ';
}
}
auto parts = split(s, " ");
vector<string> v;
for (auto part : parts) {
while (part[0] == '0') {
part.erase(0, 1);
}
if (part.size() != 0) {
v.push_back(part);
}
}
sort(v.begin(), v.end(), [](string a, string b) {
if (a.length() != b.length()) {
return a.length() < b.length();
}
return a < b;
});
if (v.size() == 0) {
cout << 0;
}
else {
cout << *(v.rbegin());
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y2xpbWl0cz4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHNzdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3I8c3RyaW5nPiBzcGxpdChzdHJpbmcgaGF5c3RhY2ssIHN0cmluZyBuZWVkbGUpIHsKICAgIHZlY3RvcjxzdHJpbmc+IHJlc3VsdDsKICAgIGludCBzdGFydFBvcyA9IDA7CiAgICBpbnQgZm91bmRQb3MgPSBoYXlzdGFjay5maW5kKG5lZWRsZSwgc3RhcnRQb3MpOwogICAgd2hpbGUgKGZvdW5kUG9zICE9IHN0cmluZzo6bnBvcykgewogICAgICAgIGludCBjb3VudCA9IGZvdW5kUG9zIC0gc3RhcnRQb3M7CiAgICAgICAgc3RyaW5nIHRva2VuID0gaGF5c3RhY2suc3Vic3RyKHN0YXJ0UG9zLCBjb3VudCk7CiAgICAgICAgaWYgKCF0b2tlbi5lbXB0eSgpKSB7CiAgICAgICAgICAgIHJlc3VsdC5wdXNoX2JhY2sodG9rZW4pOwogICAgICAgIH0KICAgICAgICBzdGFydFBvcyA9IGZvdW5kUG9zICsgbmVlZGxlLmxlbmd0aCgpOwogICAgICAgIGZvdW5kUG9zID0gaGF5c3RhY2suZmluZChuZWVkbGUsIHN0YXJ0UG9zKTsKICAgIH0KICAgIHN0cmluZyB0b2tlbiA9IGhheXN0YWNrLnN1YnN0cihzdGFydFBvcywgaGF5c3RhY2subGVuZ3RoKCkgLSBzdGFydFBvcyk7CiAgICBpZiAoIXRva2VuLmVtcHR5KCkpIHsKICAgICAgICByZXN1bHQucHVzaF9iYWNrKHRva2VuKTsKICAgIH0KICAgIHJldHVybiByZXN1bHQ7Cn0KCnN0cmluZyBuYW1lQ29udmVydChjb25zdCBzdHJpbmcmIG5hbWUpIHsKICAgIGNvbnN0IHN0cmluZyBERUxJTUlURVIgPSAiICI7CiAgICBzdHJpbmdzdHJlYW0gYnVpbGRlcjsKICAgIGF1dG8gcGFydHMgPSBzcGxpdChuYW1lLCBERUxJTUlURVIpOwogICAgZm9yIChhdXRvIHBhcnQgOiBwYXJ0cykgewogICAgICAgIHBhcnRbMF0gPSB0b3VwcGVyKHBhcnRbMF0pOwogICAgICAgIHRyYW5zZm9ybShwYXJ0LmJlZ2luKCkgKyAxLCBwYXJ0LmVuZCgpLCBwYXJ0LmJlZ2luKCkgKyAxLCA6OnRvbG93ZXIpOwogICAgICAgIGJ1aWxkZXIgPDwgcGFydCA8PCBERUxJTUlURVI7CiAgICB9CiAgICByZXR1cm4gYnVpbGRlci5zdHIoKTsKfQoKc3RyaW5nIGRhdGVDb252ZXJ0KGNvbnN0IHN0cmluZyYgZGF0ZSkgewogICAgY29uc3Qgc3RyaW5nIERFTElNSVRFUiA9ICIvIjsKICAgIHN0cmluZ3N0cmVhbSBidWlsZGVyOwogICAgYXV0byBwYXJ0cyA9IHNwbGl0KGRhdGUsIERFTElNSVRFUik7CiAgICBidWlsZGVyIDw8IHNldHcoMikgPDwgc2V0ZmlsbCgnMCcpIDw8IHBhcnRzWzBdIDw8IERFTElNSVRFUjsKICAgIGJ1aWxkZXIgPDwgc2V0dygyKSA8PCBzZXRmaWxsKCcwJykgPDwgcGFydHNbMV0gPDwgREVMSU1JVEVSOwogICAgYnVpbGRlciA8PCBwYXJ0c1syXTsKICAgIHJldHVybiBidWlsZGVyLnN0cigpOwp9CgpzdHJpbmcgbWF4VmFsdWUoaW50IG0sIGludCBzKSB7CiAgICBzdHJpbmcgcmVzdWx0ID0gIiI7CiAgICB3aGlsZSAobS0tKSB7CiAgICAgICAgaWYgKHMgPiA5KSB7CiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArICc5JzsKICAgICAgICAgICAgcyA9IHMgLSA5OwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgdG9fc3RyaW5nKHMpOwogICAgICAgICAgICBzID0gMDsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gcmVzdWx0Owp9CnN0cmluZyBtaW5WYWx1ZShpbnQgbSwgaW50IHMpIHsKICAgIHN0cmluZyByZXN1bHQgPSAiIjsKICAgIHMtLTsKICAgIHdoaWxlIChtLS0pIHsKICAgICAgICBpZiAocyA+IDkpIHsKICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgJzknOwogICAgICAgICAgICBzID0gcyAtIDk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICByZXN1bHQgPSB0b19zdHJpbmcocykgKyByZXN1bHQ7CiAgICAgICAgICAgIHMgPSAwOwogICAgICAgIH0KICAgIH0KICAgIHJlc3VsdFswXSsrOwogICAgcmV0dXJuIHJlc3VsdDsKfQoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgIAogICAgc3RyaW5nIHM7Y2luID4+IHM7CiAgICAKICAgIGZvciAoaW50IGkgPSAwO2kgPCBzLmxlbmd0aCgpO2krKykgewogICAgICAgIGlmICghaXNkaWdpdChzW2ldKSkgewogICAgICAgICAgICBzW2ldID0gJyAnOwogICAgICAgIH0KICAgIH0KICAgIGF1dG8gcGFydHMgPSBzcGxpdChzLCAiICIpOwogICAgdmVjdG9yPHN0cmluZz4gdjsKICAgIGZvciAoYXV0byBwYXJ0IDogcGFydHMpIHsKICAgICAgICB3aGlsZSAocGFydFswXSA9PSAnMCcpIHsKICAgICAgICAgICAgcGFydC5lcmFzZSgwLCAxKTsKICAgICAgICB9CiAgICAgICAgaWYgKHBhcnQuc2l6ZSgpICE9IDApIHsKICAgICAgICAgICAgdi5wdXNoX2JhY2socGFydCk7CiAgICAgICAgfQogICAgfQoKICAgIHNvcnQodi5iZWdpbigpLCB2LmVuZCgpLCBbXShzdHJpbmcgYSwgc3RyaW5nIGIpIHsKICAgICAgICBpZiAoYS5sZW5ndGgoKSAhPSBiLmxlbmd0aCgpKSB7CiAgICAgICAgICAgIHJldHVybiBhLmxlbmd0aCgpIDwgYi5sZW5ndGgoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGEgPCBiOwogICAgfSk7CgogICAgaWYgKHYuc2l6ZSgpID09IDApIHsKICAgICAgICBjb3V0IDw8IDA7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBjb3V0IDw8ICoodi5yYmVnaW4oKSk7CiAgICB9CiAgICByZXR1cm4gMDsKfQoK