#2547. 平衡的队列

平衡的队列

题目描述

FarmerJohn\red{Farmer John }N\red{N }头奶牛 (1<=N<=100,000)\red{(1 <= N <= 100,000) }有许多相似之处。事实上,FJ\red{FJ }已经能够将他的奶牛共享的特征列表缩小到只有 K\red{K } 个不同特征的列表(1<=K<=30\red{1 <= K <= 30)}

例如,表现出特征

#1\red{1}的奶牛可能有斑点,表现出特征

#2\red{2}的奶牛可能更喜欢C\red{C}而不是Pascal\red{Pascal,}等等。

FJ\red{FJ }甚至设计了一种简洁的方法来描述每头奶牛的"特征 ID\red{ID}",这是一个单一的 K\red{K }位整数,其二进制表示告诉我们奶牛表现出的一组特征。举个例子,假设一头奶牛的特征 ID=13\red{ID = 13}

由于 13\red{13 }用二进制写成 1101\red{1101,}这意味着我们的奶牛展示了特征 1\red{1}3\red{3 }4\red{4(}从右到左阅读),但没有特征 2\red{2}。更一般地,我们发现如果一头奶牛表现出特征 i\red{i,}则在 2i1\red{2^{i-1} }位置中为 1\red{1}

FJ\red{FJ }总是敏感的家伙,将奶牛 1..N\red{1..N }排成一长排,并注意到某些范围的奶牛在展示的特征方面有些"平衡"。如果 K\red{K }个可能的特征中的每一个都由该范围内相同数量的奶牛展示,则连续范围的奶牛 i..j\red{i..j }是平衡的。

FJ\red{FJ }对最大平衡范围的奶牛的大小感到好奇。看看你能不能确定。

输入格式

1\red{1}行:两个空格分隔的整数,N\red{N}K\red{K}

2...N+1\red{2...N+1}行:第i+1\red{i+1}行包含一个K\red{K}位整数,指定cowi\red{cow i}中存在的特征。

如果cow\red{cow}显示特征#1\red{1,}则该整数的最低有效位为1\red{1,}如果cow\red{cow}显示特征#K\red{K,}则最高有效位为1\red{1}

输出格式

1\red{1}行:给出最大连续平衡奶牛群大小的单个整数

样例

输入样例

7 3
7
6
7
2
1
4
2

输出样例

4

提示

输入详情:

该品系有7\red{7}头奶牛,具有3\red{3}个特征;下表总结了通信:

Feature 3:   1   1   1   0   0   1   0
              Feature 2:   1   1   1   1   0   0   1
              Feature 1:   1   0   1   0   1   0   0
              Key:         7   6   7   2   1   4   2
              Cow #:       1   2   3   4   5   6   7

输出详细信息:

在从cow\red{cow}#3\red{3}cow\red{cow}#6\red{6(}大小为4\red{4)}的范围内,每个特征都会出现在这个范围内 正好有两头奶牛:

Feature 3:     1   0   0   1  -> two total
              Feature 2:     1   1   0   0  -> two total
              Feature 1:     1   0   1   0  -> two total
              Key:           7   2   1   4 
              Cow #:         3   4   5   6