#P5643. 平衡的队列

平衡的队列

题目描述

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

例如,表现出特征

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

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

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

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

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

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

输入格式

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

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

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

输出格式

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

样例

输入样例

7 3
7
6
7
2
1
4
2

输出样例

4

提示

输入详情:

该品系有7{7}头奶牛,具有3{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{cow}#3{3}cow{cow}#6{6(}大小为4{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