#include<bits/stdc++.h>
using namespace std;
int n,w,a[1005],dp[1005][3][35];
int dfs(int x,int y,int z){
if(x>n){
return 0;
}
if(dp[x][y][z]!=-1){
return dp[x][y][z];
}
int ans1=0,ans2=0;
if(z<w&&a[x]!=y){
ans1=dfs(x+1,-1*y+3,z+1)+1;
}
if(y==a[x]){
ans2=dfs(x+1,y,z)+1;
}else{
ans2=dfs(x+1,y,z);
}
return max(ans1,ans2);
}
int main(){
cin>>n>>w;
for(int i=1;i<=n;i++){
cin>>a[i];
}
memset(dp,-1,sizeof(dp));
cout<<dfs(1,1,0);
}
难难难难难难难难难难难