如今,你的编程技能非常出色,经常能通过工作获得丰厚的报酬。遗憾的是,你的理财能力并没有同步提升。因此,每当你赚到钱时,你只会简单地将其存入银行,办理一份带有自动续存条款的 30 天定期存款。这意味着在存入资金 30 天后,该笔资金会自动续存 30 天,如此循环往复,直到你通知银行停止续存并取回本金。定期存款不能在周末创建或续存;如果 30 天的周期在周末结束,续存将顺延至紧随其后的周一进行。
由于银行保管着你几乎所有的钱,每当你想要购买除日常饮食以外的任何东西时,都必须等待最近的一次续存日期。今天,你决定购买一部新智能手机来替换你那部已经用了六个月的旧设备。给定你创建每一笔定期存款的日期,你必须确定为了从银行取钱,你最少需要等待的天数。
举个例子,假设今天是星期六,你创建了五笔定期存款:一笔在上周一,一笔在上周二,一笔在上周三,还有两笔在昨天。第一笔存款(周一)将在 25 天后(即周三)续存。第二笔存款(周二)将在 26 天后(即周四)续存。第三笔存款(周三)将在 27 天后(即周五)续存。最后,最后两笔存款(周五)将在 30 天后(即周一)续存,因为不允许在周日进行续存。因此,在这种情况下,你必须等待 25 天才能从银行取到钱。
输入格式
第一行包含一个字符串 $T$ 和一个整数 $N$ ($1 \le N \le 10^5$),分别表示今天的星期几和定期存款的数量。字符串为 “Mon”、“Tue”、“Wed”、“Thu”、“Fri”、“Sat” 或 “Sun” 之一,分别代表今天是星期一、星期二、星期三、星期四、星期五、星期六或星期日。第二行包含 $N$ 个整数 $D_1, D_2, \dots, D_N$ ($0 \le D_i \le 10^9$,对于 $i = 1, 2, \dots, N$),表示自每笔定期存款创建以来经过的天数。保证定期存款不是在周末创建的。
输出格式
输出一行,包含一个整数,表示你为了从银行取钱所必须等待的最少天数。
样例
样例输入 1
Sat 5 5 4 3 1 1
样例输出 1
25
样例输入 2
Sat 5 3 1 4 1 5
样例输出 2
25
样例输入 3
Thu 1 0
样例输出 3
32
样例输入 4
Thu 1 30
样例输出 4
0
样例输入 5
Fri 1 31
样例输出 5
31