#include<bits/stdc++.h>
using namespace std;
int T,W;
int cnt;
int tree1,tree2;
int t[1200];
int used[3][1001][1001][31];
void dfs(int now_tree,int now_cnt,int now_T,int now_w)
{
if(now_cnt>cnt)
cnt=now_cnt;
if(now_T!=T+1)
{
if(T-now_T+now_cnt<=cnt||used[now_tree][now_cnt][now_T][now_w]==1)
{
return ;
}
else
{
used[now_tree][now_cnt][now_T][now_w]=1;
if(now_tree==t[now_T])
now_cnt++;
dfs(now_tree,now_cnt,now_T+1,now_w);
if(now_w)
dfs(!now_tree,now_cnt,now_T+1,now_w-1);
}
}
}
int main()
{
cin>>T>>W;
for(int i=1;i<=T;i++)
{
int wsx_cin;
cin>>wsx_cin;
if(wsx_cin==1)
t[i]=0;
else
t[i]=1;
}
dfs(0,0,0,W);
cout<<cnt;
return 0;
}