大杨的难题
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

大杨对 01 字符串比较着迷。一天,鹿鹿决定给大杨出一道关于 01 字符串的题目:

给定一个长度为 n 且只包含 1 和 0 的字符串 S ,大杨最多可以进行 k 次以下操作(可能为 0 次):
- 选择两个整数 l,r(1 \leq l \leq r \leq n) ,对 S(下标从 1 开始的第 l,l+1,...,r-1,r 位的值取反,即 0110

在进行最多 k 次操作后,鹿鹿问大杨,S 中连续 1 的个数的最大值是多少?大杨没法回答这个问题,你能帮帮他吗?

输入描述:

第一行为两个整数 n, k(1 \leq n, k \leq 10^5)n 表示字符串 S 的长度,k 表示最多可操作数。

第二行为一个只包含 1 和 0 的字符串 S

输出描述:

输出一个整数,表示在进行最多 k 次操作后,S 中连续 1 的个数的最大值。
示例1

输入

复制
2 1
10

输出

复制
2
示例2

输入

复制
4 1
0010

输出

复制
3