#include <bits/stdc++.h>
using namespace std;
int f[1005][35];
int T,W;
int app[1005];
int dfs(int t_now,int last_pos,int move)
{
if(t_now>T)
{
return 0;
}
if(f[t_now][move]!=-1)
{
return f[t_now][move];
}
f[t_now][move]=0;
if(app[t_now]==last_pos)
{
f[t_now][move]=dfs(t_now+1,app[t_now],move)+1;
}
else
{
f[t_now][move]=dfs(t_now+1,last_pos,move);
if(move<W)
{
f[t_now][move]=max(dfs(t_now+1,app[t_now],move+1)+1,f[t_now][move]);
}
}
return f[t_now][move];
}
int main()
{
cin>>T>>W;
for(int i=1;i<=T;i++)
{
cin>>app[i];
}
memset(f,-1,sizeof(f));
cout<<dfs(1,1,0)<<endl;
}