#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
vector<int> nums;//存储输入的整数数列
map<int,vector<int>> m;//元素值为主键,下标为value;存储相同值的所有元素的下标
//数列前后加一个0,方便使用
nums.push_back(0);
for(int i=0;i<n;i++)
{
int tmp;
cin>>tmp;
nums.push_back(tmp);
}
nums.push_back(0);
int cnt=0;//统计非零段数目
for(int i=1;i<nums.size();i++)
{
if(nums[i-1]!=0 && nums[i]==0)
{
cnt++;
}
if(nums[i])//如果不为0,存储
m[nums[i]].push_back(i);
}
int res = cnt;//最大的非零段段数
//当归零时,左右都为0则非零段减一;左右都不为0则非零段加一;其他情况不变
for(auto iter:m)
{
for(auto it:iter.second)
{
if(!nums[it-1] && !nums[it+1])
{
cnt--;
}
else if(nums[it-1] && nums[it+1])
cnt++;
nums[it]=0;
}
res=max(res,cnt);
}
cout<<res;
return 0;
}