#include<cstdio>
#include<set>
#include<string>
#include<cstring>
#include<iostream>
using namespace std;
int monthday[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int tran(int y){
if(y>=60&&y<=99)y+=1900;
else y+=2000;
return y;
}
string format(int a,int b,int c){
a=tran(a);
char s[15],t[15];
sprintf(s,"%d-",a);
sprintf(t,"%d-",b);
if(b<10)strcat(s,"0");
strcat(s,t);
sprintf(t,"%d",c);
if(c<10)strcat(s,"0");
strcat(s,t);
return s;
}
bool check(int a,int b,int c){
a=tran(a);
if(b<1||b>12)return false;
//每4年一闰,100年不闰,400年又闰,3200年又不闰(闰年就是二月多一天)
if((a%4==0&&a%100!=0)||a%400==0)monthday[2]=29;
else monthday[2]=28;
if(c<1||c>monthday[b])return false;
return true;
}
int main(){
string s;
set<string> ans;
cin>>s;
//转换成数字好判断日期是否合法
int a = (s[0]-'0') *10+ (s[1]-'0');
int b = (s[3] - '0') * 10 + (s[4] - '0');
int c = (s[6] - '0') * 10 + (s[7] - '0');
//按照年月日解析=======>a,b,c
if(check(a,b,c))ans.insert(format(a,b,c));
//按照月日年解析a,b,c=======>c,a,b
if (check(c, a, b)) ans.insert(format(c,a,b));
//按照日月年解析a,b,c=======>c,b,a
if (check(c, b, a)) ans.insert(format(c, b,a));
for(set<string>::iterator it=ans.begin();it!=ans.end();it++)
cout<<*it<<endl;
return 0;
}