RT.
#include <bits/stdc++.h>
using namespace std;
int read(){
int s=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-') f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
s=s*10+ch-'0';
ch=getchar();
}
return s*f;
}
int t,w,arr[1010],dp[1010/*x*/][3/*y*/][31];//在x时,y棵树下,还剩z次机会
int dfs(int w,int ut,int t){
if(dp[t][ut][w])return dp[t][ut][w];
if(t==0)return 0;
int ans1=0,ans2=0;
if(w&&arr[t]!=ut)
ans1=dfs(w-1,3-ut,t-1)+1;
ans2=dfs(w,ut,t-1)+(ut==arr[t]?1:0);
return dp[t][ut][w]=max(ans1,ans2);
}
int main(){
t=read();
w=read();
for(int i=1;i<=t;i++)arr[i]=read();
cout<<dfs(w,1,t)<<endl;
return 0;
}