#P896. 欢欢的party

欢欢的party

问题描述

欢欢的班里有很多同学,但里面也有很多是后来转来的,所以欢欢并不是对每个人都了解。前两天老师交给欢欢一个任务,就是把班里同学的情况统计一下。虽然任务巨大,但也可以借此得到不少想要的信息,所以欢欢欣然接受了。

欢欢的同学都很懒,都只用了一句话来描述自己的情况。现在欢欢已经把数据统计好并交给老师了。之后就是利用自己备份的一份进行秘密的工作了。班里有很多都是欢欢的好朋友,欢欢想在剩下的一年里给他们每个人过一次生日,但由于精力有限,只能在每个月中选择连续的m天进行,以免影响学习。

欢欢想知道他最多可以给多少人过生日。

输入格式(party.in):

第一行三个整数n,m。n表示班里的同学数。m如题。

接下来n行,每行代表一个同学的情况(<255)。 其中包括”I’m #”或”My name is #”,”My birthday is #”或”My id card num is #”(你可以从身份证号码中得到他的生日),以及”新同学”(只有新同学才说这句话)。身份证号码为18位。欢欢不会给新同学过生日。

输出格式(party.out):

共一行,表示欢欢最多可以给多少人过生日。

输入样例

3 3
I’m wangli.My birthday is 5-10.
My name is SMMX.My birthday is 7-3.
My name is ZZF.My birthday is 7-5.

输出样例

3

数据范围:

对于20%的数据,只有”I’m #”和”My birthday is #”。N<=20。

对于50%的数据,有”I’m #”或”My name is #”,和”My id card num is #”。N<=1000。

对于100%的数据,有”I’m ?”或”My name is #”,和”My birthday is #”或”My id card num is #”,和”新同学”。

如果是新同学,那么”新同学”只可能出现在一行的末尾。

N<=10000;m<=30;为了简便运算,你可以把每个月都当作30天。

说明:

保证数据都合法。生日形式为m-d。m为月份,d为日,中间会有多余的0。身份证号码为标准的18位,第11-14位表示他的生日。

如果有几个人在同一天过生日,那么有几个算几个,但不算新同学。

程序中你不需要用到4位以上的数据类型。