/*
这题首先需要判断输入的年龄是否合法
first:开始的思路是去计算出真实的年龄,看是否小于2000,还有判断是否迟于现在的日期
在实际计算当中,发现要考虑的条件太多,遂放弃。
end:参考网上代码,年龄合法的话,它应该位于一个区间,只要判断每次输入的数据是否在这个区间内即可
2014 年 9 月 6 日
1814 年 9 月 6日
*/
#include<bits/stdc++.h>
using namespace std;
//struct p{
// string name; 会产生错误 在maxm=y结构体赋值的时候
// int y;
// int m;
// int d;
//}y,maxm,minm;
int main()
{
struct p{
char name[6];
int y;
int m;
int d;
}y,maxm,minm;
minm.y=1814;
minm.m=9;
minm.d=6;
maxm.y=2014;
maxm.m=9;
maxm.d=6;
int n;
cin>>n;
int cnt=n;
for(int i=0;i<n;i++)
{
scanf("%s %d/%d/%d",&y.name,&y.y,&y.m,&y.d);
//若不处于现在这个区间,则continue
if(y.y>2014 || y.y<1814 || (y.y==2014 &&y.m>9) || (y.y==1814 &&y.m<9) || (y.y==2014 && y.m==9 && y.d >6) ||(y.y==1814 && y.m==9 && y.d <6 ))
{
cnt--;
continue;
}
if(y.y<maxm.y || (y.y==maxm.y&&y.m<maxm.m) || (y.y==maxm.y&&y.m==maxm.m&&y.d<maxm.d))
{
maxm=y;
}
if(y.y>minm.y || (y.y==minm.y&&y.m>minm.m) || (y.y==minm.y&&y.m==minm.m&&y.d>minm.d))
{
minm=y;
}
}
printf("%d",cnt);
if(cnt!=0){
printf(" %s %s",maxm.name,minm.name);
}
}