#32. 小明的复习计划

小明的复习计划

附加文件

题目描述

马上要进行期末考试了,小明计划在接下来的 n 天把要考试的 m 个学科进行系统的复习。他将这些学科编号为 1 ~ m,并且对接下来 n 天的复习计划做了周密的安排。每天的安排用一个整数表示。比如,某天的安排为整数 13,二进制表示为 1101,代表他那天安排复习的学科为 1、 3、 4 三个学科(即令二进制数最右边的位数为 1,从右往左计数,若第 i 位的数字为 1 则表示学科 i 被安排在了当天的复习计划中,否则表示学科 i 未被安排在当天的复习计划中)。

小明不希望自己偏科,所以他想知道自己的复习计划是不是合理。如果在连续的若干天里,每个学科被安排的复习天数都相同,他就认为这段时间是一个平衡周期。例如,在连续的 3 天内,他每个学科都被安排在两天里进行复习,那么这 3 天就是一个平衡周期。

小明想知道他的复习计划中,最长的平衡周期是多少天?

输入格式

第一行:两个整数 n, m,中间以一个空格隔开;

接下来有 n 行,每行一个整数,依次表示第 1 ~ n 天的复习安排。

输出格式

一个整数,表示最长平衡周期的天数。

样例输入

8 3
5
3
7
2
1
4
2
7

样例输出

4

样例解释

8 天,共 3 个学科,具体安排如下:

第几天 当天安排 二进制 当天复习学科
11 55 101101 1,31,3
22 33 011011 1,21,2
33 77 111111 1,2,31,2,3
44 22 010010 22
55 11 001001 11
66 44 100100 33
77 22 010010 22
88 77 111111 1,2,31,2,3

第 3 天到第 6 天为一个最长平衡周期,因为这 4 天每个学科都被安排了两天复习。

当然,第 5 天到第 8 天这 4 天也是一个最长平衡周期。

数据范围

对于 50%50\% 的数据,1n10001\le n \le 1000

对于 100%100\% 的数据,1n1051\le n \le 10^51m301\le m \le 30