#include"bits/stdc++.h"
#include"cstring"
using namespace std;
int months[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//用这个来存储每个月的天数,方便遍历
bool Palindrome(string s){//判断是否为回文
string n=s;
reverse(n.begin(),n.end());//将其反转一下如果还相同则是回文
return n==s;
}
bool Palindrome2(string s){//判断是否为ABAB型号
if(s[0]==s[2]&&s[1]==s[3])return true;
return false;
}
int year_transformation(string s){//将字符串转换为数字
int sum=0;
for(int i=0;i<=3;i++){
sum=sum*10+(s[i]-'0');
}
return sum;
}
int month_transformation(string s){
int sum=0;
for(int i=4;i<=5;i++){
sum=sum*10+(s[i]-'0');
}
return sum;
}
int day_transformation(string s){
int sum=0;
for(int i=6;i<=7;i++){
sum=sum*10+(s[i]-'0');
}
return sum;
}
string to_string1(int x){
char a[4];
itoa(x,a,10);
return string(a);
}
void solve(string s){
bool panduan1=false,panduan2=false;//panduan1 :当年份+1时,要让month=1,day=1
//如果年份,是输入的年份则,day+1就好;
int year=year_transformation(s);
int month=month_transformation(s);
int day=day_transformation(s);
for(int i=year;;i++){
int month1,day1;
//对year进行暴力++
if(i%400==0||(i%4==0&&i%100!=0)){
months[2]=29;
}else{
months[2]=28;
}
if(i==year){
day1=day+1;//如果超过当前月份的天数,也无所谓,但是一定要+1(否则要在后面加1)。
month1=month;
} else{
month1=1;
day1=1;
}
for(int j=month1;j<=12;j++){
for(int k=day1;k<=months[j];k++){
s=to_string1(i);
if(j<10){
s=s+'0'+to_string1(j);
}else{
s=s+to_string1(j);
}
if(k<10){
s=s+'0'+to_string1(k);
}else{
s=s+to_string1(k);
}
if(Palindrome(s)){
if(panduan2==false){
cout<<s<<endl;
panduan2=true;
}
if(Palindrome2(s)){
cout<<s<<endl;
return;
}
}
}
}
}
}
int main()
{
string n;
cin>>n;
solve(n);
return 0;
}
02-13
1078
02-04
1055
02-17
7911
12-28