N people are arranged in a row from left to right.

You are given a string S of length N consisting of `0` and `1`, and a positive integer K.

The i-th person from the left is standing on feet if the i-th character of S is `0`, and standing on hands if that character is `1`.

You will give the following direction at most K times (possibly zero):

Direction: Choose integers l and r satisfying 1 \leq l \leq r \leq N, and flip the l-th, (l+1)-th, ..., and r-th persons. That is, for each i = l, l+1, ..., r, the i-th person from the left now stands on hands if he/she was standing on feet, and stands on feet if he/she was standing on hands.

Find the maximum possible number of consecutive people standing on hands after at most K directions.

Constraints

* N is an integer satisfying 1 \leq N \leq 10^5.
* K is an integer satisfying 1 \leq K \leq 10^5.
* The length of the string S is N.
* Each character of the string S is `0` or `1`.

Input

Input is given from Standard Input in the following format:


N K
S


Output

Print the maximum possible number of consecutive people standing on hands after at most K directions.

Examples

Input

5 1
00010


Output

4


Input

14 2
11101010110011


Output

8


Input

1 1
1


Output

1
	import java.util.*;
	import java.util.Map.Entry;
	 
	 
	 class Main {
//		 static int mod =  (int) (Math.pow(10,9)+7);
		 static int mod =  (int) 998244353;
		 static List<ArrayList<Integer>>  list = new ArrayList<ArrayList<Integer>>();
	    public static void main(String[] args) {
	    	
	        Scanner sc = new Scanner(System.in);
	        int N= sc.nextInt();
	        int K= sc.nextInt();
	        String S = sc.next()+"0000";
	        char[] c = S.toCharArray();
	        int[] a=new int[N+10];
	        int[] b=new int[N+10];
	        int cnt=0;
	        for(int k=0;cnt<N;k++) {
		        int acnt=0;
		        int bcnt=0;
		        while(c[cnt]=='1') {
		        	acnt++;
		        	cnt++;
		        }		        
		        a[k]=acnt;
	        	while(cnt<N&&c[cnt]=='0') {
	        		bcnt++;
	        		cnt++;
	        	}
	        	b[k]=bcnt;
	        }
	        long ans=0;
	        int[] sum = new int[N+10];
	        sum[0]=a[0];
	        for(int i=0;i<K;i++) {
	        	sum[0]=sum[0]+b[i]+a[i+1];	        	
	        }
	        ans=sum[0];
	        for(int i=1;i<N-K;i++) {
	        	sum[i]=sum[i-1]+a[i+K]+b[i+K-1]-a[i-1]-b[i-1];
	        	ans=Math.max(ans,sum[i]);
	        }
	        
	        System.out.println(ans);
	        

	    }
	    
	    

	}