逆天打表
#include<iostream>
#include<cstring>
#include<algorithm>
#define int long long
using namespace std;
const int N=11;
string s,s1="20",s2="20",s3="20";
int a,b,c;
bool d[4];
signed main(){
int days[13]={-1,31,28,31,30,31,30,31,31,30,31,30,31};
cin>>s;
a=(s[0]-'0')*10+(s[1]-'0');
b=(s[3]-'0')*10+(s[4]-'0');
c=(s[6]-'0')*10+(s[7]-'0');
if((!(a%4==0&&b==2))&&b>0&&b<=12&&c<=days[b]&&c>0){
if(a<10)s1=s1+'0'+s[1]+'-';
else s1=s1+s[0]+s[1]+'-';
if(b<10)s1=s1+'0'+s[4]+'-';
else s1=s1+s[3]+s[4]+'-';
if(c<10)s1=s1+'0'+s[7];
else s1=s1+s[6]+s[7];
}
else if(a%4==0&&b==2&&c<=29&&c>0){
if(a<10)s1=s1+'0'+s[1]+'-';
else s1=s1+s[0]+s[1]+'-';
if(b<10)s1=s1+'0'+s[4]+'-';
else s1=s1+s[3]+s[4]+'-';
if(c<10)s1=s1+'0'+s[7];
else s1=s1+s[6]+s[7];
}
if((!(c%4==0&&a==2))&&a<=12&&b<=days[a]&&a>0&&b>0){
if(c<10)s2=s2+'0'+s[7]+'-';
else s2=s2+s[6]+s[7]+'-';
if(a<10)s2=s2+'0'+s[1]+'-';
else s2=s2+s[0]+s[1]+'-';
if(b<10)s2=s2+'0'+s[4];
else s2=s2+s[3]+s[4];
}
else if(c%4==0&&a==2&&b<=29&&b>0){
if(c<10)s2=s2+'0'+s[7]+'-';
else s2=s2+s[6]+s[7]+'-';
if(a<10)s2=s2+'0'+s[1]+'-';
else s2=s2+s[0]+s[1]+'-';
if(b<10)s2=s2+'0'+s[4];
else s2=s2+s[3]+s[4];
}
if((!(c%4==0&&b==2))&&b<=12&&a<=days[b]&&a>0&&b>0){
if(c<10)s3=s3+'0'+s[7]+'-';
else s3=s3+s[6]+s[7]+'-';
if(b<10)s3=s3+'0'+s[4]+'-';
else s3=s3+s[3]+s[4]+'-';
if(a<10)s3=s3+'0'+s[1];
else s3=s3+s[0]+s[1];
}
else if(c%4==0&&b==2&&c<=29&&c>0){
if(c<10)s3=s3+'0'+s[7]+'-';
else s3=s3+s[6]+s[7]+'-';
if(b<10)s3=s3+'0'+s[4]+'-';
else s3=s3+s[3]+s[4]+'-';
if(a<10)s3=s3+'0'+s[1];
else s3=s3+s[0]+s[1];
}
if(s1==s2&&s1==s3)s2="20",s3="20";
if(s1==s2&&s1!=s3&&s2!=s3)s2="20";
if(s1==s3&&s1!=s2)s3="20";
if(s2==s3&&s1!=s2)s3="20";
if(s1>s2)swap(s1,s2);
if(s2>s3)swap(s2,s3);
if(s1>s2)swap(s1,s2);
if(a>=60||b>=60||c>=60){
s1[0]='1',s1[1]='9';
s2[0]='1',s2[1]='9';
s3[0]='1',s3[1]='9';
}
if(s1!="20"&&s1!="19")cout<<s1<<endl;
if(s2!="20"&&s2!="19")cout<<s2<<endl;
if(s3!="20"&&s3!="19")cout<<s3<<endl;
return 0;
}