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

题目描述

随手关灯是一个好习惯。

在一条直线上有 n 个房间,自左至右标号为 1-n,用 01 来表示房间是否开灯,若 a_i = 1,则房间 i 处在开灯的状态;若 a_i = 0,则房间 i 处在关灯的状态。

你有一个智能遥控器,每次可以改变连续的最多 k 个灯的状态,换句话说,若当前房间的灯是关着的,则 0\rightarrow 1,若当前房间的灯是开着的,则 1\rightarrow 0

现在你想知道最少使用几次遥控器可以让所有房间的灯都处于关闭状态。

输入描述:

第一行两个整数 n,k(1 \leq n \leq 2\times 10 ^6,1\leq k \leq n),表示有 n 个房间,每次改变最多 k 个灯。

第二行一个长度为 n 的字符串,第 i 个字符表示第 i 个房间的开关灯状态,数据保证字符串中仅含 0,1

输出描述:

一个整数,表示最少操作次数。
示例1

输入

复制
11 3
10011011110

输出

复制
4