/*																													   
 Templatka c++ Kacper Fis																							   																											   //
*/																													  
#include <functional>																							   
#include <bits/stdc++.h>																							   
																													   
using namespace std; 																								   
																													   
const int INF = 1000000001;																						   
const float PI = 3.14;																								   
typedef long long LL;																								   
																													   
typedef vector<int> vi;																								   
typedef list<int> li;																								   
typedef queue<int> qi; 																								   
typedef pair<int,int> ii; 																							   
typedef map<string,int> msi; //np msi['nazwa'] = 'liczba'															   
typedef vector<ii> vii; //vector par<int>, do tworzenia tablicy dla grafów wagowych #dijkstra #Bellman_Ford			   
typedef priority_queue< ii, vector<ii>, greater<ii> > pq; //kolejka priorytetowa vectorów par(top()=min) #dijkstra																													   																				   list<int>::iterator it;																								   
																				   
vector<ii>::iterator iter;																							   
																													   																				   
#define print_list(x) for(it = (x).begin(); it != (x).end(); it++) {cout << *it << " ";}							   
#define print_vector(x) for(it2 = (x).begin(); it2 != (x).end(); it2++) {cout << *it2 << " ";}						   
#define search_list(x) for(it = (x).begin(); it != (x).end(); it++)													   
#define search_vector(x) for(it2 = (x).begin(); it2 != (x).end(); it2++);											   
#define pb(x) push_back(x) 																							   
#define pf(x) push_front(x)																							   
#define mp(x, y) make_pair(x, y)                                                                                       
///////////////////////////////////////////////GLOBAL DEFINITIONS////////////////////////////////////////////////////////


///////////////////////////////////////////////FUNCTIONS/////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////MAIN////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])																					 
{ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);                  												       
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
   int n, k;
   string s;
   cin >> n >> k;
   cin >> s;
   
   list<int> lista;
   for(int i = 0; i < n; i++){
	   if(s[i] == '0'){
		   lista.pb(i);
	   }
   }
   
   //cout << "pozycje zer w s: " << endl;
   //for(auto it : lista){
	   //cout << it << " ";
   //}
   
   int ans = 0;
   int licznik = 0;
   int j = 0;
   int i = 0;
   
   while(i < n){
	   while(j < n){
			//cout << "current i: " << i << endl;
			if(j == 0 && s[j] == '0'){ 
				licznik++;
				j++;
			}
			else{	
				if(licznik < k){
					if(s[j] == '0' && s[j-1] == '1'){
						licznik++;
						j++;
					}
					else{
						j++;
					}
				}
				//cout << "current licznik first: " << licznik << endl;
				//cout << "current j: " << j << endl;
				if(licznik == k){
					//cout << "licznik == k!" << endl;
					if(s[j] == '1' || (s[j] == '0' && s[j-1] == '0')){
						j++;
						
					}
					if(s[j] == '0' && s[j-1] == '1'){
						j--;
						break;
					}
				}
				//cout << "current j after: " << j << endl;
				//cout << "current licznik: " << licznik << endl;
			}
	   }
	   
	   if(j == n) j--;
	   ans = max(ans, j - i + 1);
	  // cout << "current ans: " << ans << endl;
	   //cout << "second part" << endl;
		
		
		if(licznik == k){
			while(licznik == k){
				if(s[i] == '1'){
					i++;
				}
				else if(s[i] == '0'){
					if(s[i+1] == '1'){
						if(licznik > 0){
							licznik--;
						}
						i++;
					}
					else i++;
				}
				else{
					i++;
					break;
				}
			}
		}
		else i++;
		
	//	cout << "ending i: " << i << endl << endl;
   }
   
   
   
   cout << ans << endl;
   
   
   
   
   
   
   
   
    
	return 0;
}


Measured memory_bytes: 3536