#include <iostream>
#include <cmath>
#include <chrono>
#include <iomanip>
typedef std::chrono::high_resolution_clock Clock;
int main()
{
//auto t1 = Clock::now();
std::string inp;
std::cin >> inp;
int day,month, year = 1980;
day = month = 0;
if (inp.size() == 16)
{
for (int i = 6; i > 0; --i)
if (inp[i] == '1')
year += pow(2, 6 - i);
for (int i = 10; i > 6; --i)
if (inp[i] == '1')
month += pow(2, 10 - i);
for (int i = 15; i > 10; --i)
if (inp[i] == '1')
day += pow(2, 15 - i);
if (day == 0 || month == 0)
std::cout << "ERROR" << std::endl;
else
{
std::cout << year << "-";
std::cout.fill('0');
std::cout << std::setw(2) << month << "-" << std::setw(2) << day << std::endl;
}
}
if (inp.size() == 10)
{
char out[17] = "0000000000000000";
std::string tyear = "";
copy(inp.begin(), inp.begin() + 4, tyear.begin());
std::string tmonth = "";
copy(inp.begin() + 5, inp.begin() + 7, tmonth.begin());
std::string tday = "";
copy(inp.begin() + 8, inp.end(), tday.begin());
year = atoi(tyear.c_str()) - 1980;
month = atoi(tmonth.c_str());
day = atoi(tday.c_str());
int i;
for (i = 6; i >= 0 && year / 2; --i)
{
if (year % 2)
out[i] = '1';
else
out[i] = '0';
year /= 2;
}
out[i] = '1';
for (i = 10; i > 6 && month / 2; --i)
{
if (month % 2)
out[i] = '1';
else
out[i] = '0';
month /= 2;
}
out[i] = '1';
for (i = 15; i > 10; --i)
{
if (day % 2)
out[i] = '1';
else
out[i] = '0';
day /= 2;
}
out[i] = '1';
out[16] = '\0';
std::cout << out << std::endl;
}
//auto t2 = Clock::now();
//std::cout << "Delta t2-t1: "
//<< std::chrono::duration_cast<std::chrono::nanoseconds>(t2 - t1).count()
//<< " nanoseconds" << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxjaHJvbm8+CiNpbmNsdWRlIDxpb21hbmlwPgoKdHlwZWRlZiBzdGQ6OmNocm9ubzo6aGlnaF9yZXNvbHV0aW9uX2Nsb2NrIENsb2NrOwoKaW50IG1haW4oKQp7CiAgICAvL2F1dG8gdDEgPSBDbG9jazo6bm93KCk7CiAgICBzdGQ6OnN0cmluZyBpbnA7CiAgICBzdGQ6OmNpbiA+PiBpbnA7CiAgICBpbnQgZGF5LG1vbnRoLCB5ZWFyID0gMTk4MDsKICAgIGRheSA9IG1vbnRoID0gMDsKICAgIGlmIChpbnAuc2l6ZSgpID09IDE2KQogICAgewogICAgICAgIGZvciAoaW50IGkgPSA2OyBpID4gMDsgLS1pKQogICAgICAgICAgICBpZiAoaW5wW2ldID09ICcxJykKICAgICAgICAgICAgICAgIHllYXIgKz0gcG93KDIsIDYgLSBpKTsKICAgICAgICBmb3IgKGludCBpID0gMTA7IGkgPiA2OyAtLWkpCiAgICAgICAgICAgIGlmIChpbnBbaV0gPT0gJzEnKQogICAgICAgICAgICAgICAgbW9udGggKz0gcG93KDIsIDEwIC0gaSk7CiAgICAgICAgZm9yIChpbnQgaSA9IDE1OyBpID4gMTA7IC0taSkKICAgICAgICAgICAgaWYgKGlucFtpXSA9PSAnMScpCiAgICAgICAgICAgICAgICBkYXkgKz0gcG93KDIsIDE1IC0gaSk7CiAgICAgICAgaWYgKGRheSA9PSAwIHx8IG1vbnRoID09IDApCiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCAiRVJST1IiIDw8IHN0ZDo6ZW5kbDsKICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgeWVhciA8PCAiLSI7CiAgICAgICAgICAgIHN0ZDo6Y291dC5maWxsKCcwJyk7CiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCBzdGQ6OnNldHcoMikgPDwgbW9udGggPDwgIi0iIDw8IHN0ZDo6c2V0dygyKSA8PCBkYXkgPDwgc3RkOjplbmRsOwogICAgICAgIH0KICAgIH0KICAgIGlmIChpbnAuc2l6ZSgpID09IDEwKQogICAgewogICAgICAgIGNoYXIgb3V0WzE3XSA9ICIwMDAwMDAwMDAwMDAwMDAwIjsKICAgICAgICBzdGQ6OnN0cmluZyB0eWVhciA9ICIiOwogICAgICAgIGNvcHkoaW5wLmJlZ2luKCksIGlucC5iZWdpbigpICsgNCwgdHllYXIuYmVnaW4oKSk7CiAgICAgICAgc3RkOjpzdHJpbmcgdG1vbnRoID0gIiI7CiAgICAgICAgY29weShpbnAuYmVnaW4oKSArIDUsIGlucC5iZWdpbigpICsgNywgdG1vbnRoLmJlZ2luKCkpOwogICAgICAgIHN0ZDo6c3RyaW5nIHRkYXkgPSAiIjsKICAgICAgICBjb3B5KGlucC5iZWdpbigpICsgOCwgaW5wLmVuZCgpLCB0ZGF5LmJlZ2luKCkpOwogICAgICAgIHllYXIgPSBhdG9pKHR5ZWFyLmNfc3RyKCkpIC0gMTk4MDsKICAgICAgICBtb250aCA9IGF0b2kodG1vbnRoLmNfc3RyKCkpOwogICAgICAgIGRheSA9IGF0b2kodGRheS5jX3N0cigpKTsKICAgICAgICBpbnQgaTsKICAgICAgICBmb3IgKGkgPSA2OyBpID49IDAgJiYgeWVhciAvIDI7IC0taSkKICAgICAgICB7CiAgICAgICAgICAgIGlmICh5ZWFyICUgMikKICAgICAgICAgICAgICAgIG91dFtpXSA9ICcxJzsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgb3V0W2ldID0gJzAnOwogICAgICAgICAgICB5ZWFyIC89IDI7CiAgICAgICAgfQogICAgICAgIG91dFtpXSA9ICcxJzsKICAgICAgICBmb3IgKGkgPSAxMDsgaSA+IDYgJiYgbW9udGggLyAyOyAtLWkpCiAgICAgICAgewogICAgICAgICAgICBpZiAobW9udGggJSAyKQogICAgICAgICAgICAgICAgb3V0W2ldID0gJzEnOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBvdXRbaV0gPSAnMCc7CiAgICAgICAgICAgIG1vbnRoIC89IDI7CiAgICAgICAgfQogICAgICAgIG91dFtpXSA9ICcxJzsKICAgICAgICBmb3IgKGkgPSAxNTsgaSA+IDEwOyAtLWkpCiAgICAgICAgewogICAgICAgICAgICBpZiAoZGF5ICUgMikKICAgICAgICAgICAgICAgIG91dFtpXSA9ICcxJzsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgb3V0W2ldID0gJzAnOwogICAgICAgICAgICBkYXkgLz0gMjsKICAgICAgICB9CiAgICAgICAgb3V0W2ldID0gJzEnOwogICAgICAgIG91dFsxNl0gPSAnXDAnOwogICAgICAgIHN0ZDo6Y291dCA8PCBvdXQgPDwgc3RkOjplbmRsOwoKICAgIH0KCiAgICAvL2F1dG8gdDIgPSBDbG9jazo6bm93KCk7CiAgICAvL3N0ZDo6Y291dCA8PCAiRGVsdGEgdDItdDE6ICIKICAgICAgICAgICAgICAvLzw8IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcz4odDIgLSB0MSkuY291bnQoKQogICAgICAgICAgICAgIC8vPDwgIiBuYW5vc2Vjb25kcyIgPDwgc3RkOjplbmRsOwoKICAgIHJldHVybiAwOwp9Cg==