#include<bits/stdc++.h>
using namespace std;
const int maxx=2555;
int n,m,in[2505],dp[2505]={0,1},sum[3][2505];
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%d",&in[i]);
sum[1][i]=sum[1][i-1];
sum[2][i]=sum[2][i-1];
sum[in[i]][i]++;
}
for(int i=2;i<=n;i++)
{
int x=sum[1][i]-sum[1][1],y=sum[2][i]-sum[2][1];
if(abs(x-y)<=m||x==0||y==0) dp[i]=dp[i-1];
else dp[i]=maxx;
for(int j=i-1;j>0;j--)
{
int x=sum[1][i]-sum[1][j],y=sum[2][i]-sum[2][j];
if(abs(x-y)<=m||x==0||y==0) dp[i]=min(dp[i],dp[j]+1);
}
}
printf("%d",dp[n]);
return 0;
}