#include
#include
using namespace std;
struct date { int add; bool trfa = true; };
void judgeDate(int x, int y, int z, date &s);
int main() {
int x, y, z;
scanf("%i/%i/%i", &x, &y, &z);
int n = 3;
date sum[n];
judgeDate(x, y, z, sum[0]);
judgeDate(z, x, y, sum[1]);
judgeDate(z, y, x, sum[2]);
date temporary;
temporary.add = -1;
for (int j = 0; j < n - 1; j++) {
for (int i = 0; i < n - 1; i++) {
if (sum[i].add > sum[i + 1].add) {
temporary.add = sum[i].add;
temporary.trfa = sum[i].add;
sum[i].add = sum[i + 1].add;
sum[i].trfa = sum[i + 1].trfa;
sum[i + 1].add = temporary.add;
sum[i + 1].trfa = temporary.trfa;
}
}
if (temporary.add == -1) {
break;
}
}
for (int i = 0; i < n; i++) {
if (sum[i].trfa && (sum[i].add != sum[i + 1].add || i == n - 1)) {
printf("%i-%02i-%02i\n", sum[i].add / 10000, sum[i].add % 10000 / 100, sum[i].add % 10000 % 100);
}
}
return 0;
}
void judgeDate(int x, int y, int z, date &s) {
if (y > 12 || ((y == 1 || y == 3 || y == 5 || y == 7 || y == 8 || y == 10 || y == 12) && z > 31) ||
((y == 4 || y == 6 || y == 9 || y == 11) && z > 30)) {
s.trfa = false;
return;
}
else if (y == 2) {
if (((x % 4 == 0 && x % 100 != 0) || (x % 400 == 0))) {
if (z > 29) {
s.trfa = false;
return;
}
}
else {
if (z > 28) {
s.trfa = false;
return;
}
}
}
if (x > 59) {
x += 1900;
}
else {
x += 2000;
}
s.add = x * 10000 + y * 100 + z;
return;
}