#include<iostream>
using namespace std;
bool ispre(int day){
string s;
while(day){
s+=day%10+'0';
day/=10;
}
for(int i=0,j=7;i<j;i++,j--){
if(s[i]!=s[j]){
return false;
}
}
return true;
}
bool isAB(int day){
string s;
while(day){
s+=day%10+'0';
day/=10;
}
if(s[0]==s[2]&&s[1]==s[3]){
return true;
}
return false;
}
int main(){
int time;
cin>>time;
int monthdays[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int res;
int flag=0;
for(int year=1000;year<=9999;year++){
//遍历每一天,判断是否为回文数和AB
if(year*10000+10000<time){
continue;
}
for(int month=1;month<=12;month++){
int days=monthdays[month];
if(month==2){
//闰年二月加一天
if((year%400==0)||(year%4==0&&year%100!=0)){//闰年判断
days++;
}
}
for(int i=1;i<=days;i++){
int day=i+month*100+year*10000;
if(ispre(day)){
if(day<=time){
continue;
}
if(flag==0){
res=day;
flag=1;
}
if(isAB(day)){
cout<<res<<endl<<day<<endl;
return 0;
}
}
}
}
}
return 0;
}