n,k=list(map(int,input().split()))
l=list(map(int,input().split()))
if l.count(1)==0: # 全部为0的场景
    print(k)
elif l.count(0)==0: # 全部为1的场景
    print(n)
else:
    res=[]
    le=0
    idx=[] # 记录0的索引
    for i in range(n):
        if l[i]==0:
            idx.append(i)
            k-=1 # 消耗一次修改机会
        if k>=0:
            le=i+1
            res.append(le)
        else: # 0的个数已经大于k
            le=i-idx[-k-1] # 以位置i结尾得到的最长全1串的长度,就是我们从i向前修改连续K个0后的结果
            res.append(le)
    print(max(res))