#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int (i)=0;(i)<(n);(i)++)
#define pp pair<int,int>
#define ll long long
#define ld long double
int inf=100000000;
ll INF=5000000000000000000;
ll MOD=1000000007;


int main() {
    while (true){
    int n;
    cin >> n;
    if (n==0) return 0;
    pp v;
    vector<pp> a(0);
    int u;
    cin >> u;
    v.first=u;
    v.second=1;
    a.push_back(v);
    for (int i=1;i<n;i++){
        cin >> u;
        if (u==a.at(a.size()-1).first) a.at(a.size()-1).second++;
        else {
            v.first=u;v.second=1;
            a.push_back(v);
        }
    }
    int ans=0;
    rep(i,a.size()){
        
        if (a.at(i).second==1){
            int an=0;
            int l=1;
            while (true){
                if (i-l==-1 || i+l==a.size()) break;
                if (l==1 && a.at(i-l).first==a.at(i+l).first && a.at(i-l).second+a.at(i+l).second+1>=4) an+=1+a.at(i-l).second+a.at(i+l).second;
                else if (a.at(i-l).first==a.at(i+l).first && a.at(i-l).second+a.at(i+l).second>=4) an+=a.at(i-l).second+a.at(i+l).second;
                else break;
                l++;
            }
            ans=max(ans,an);
            an=0;
            l=1;
            while (true){
                if (i-l+1==-1 || i+l==a.size()) break;
                if (a.at(i-l+1).first==a.at(i+l).first && a.at(i-l+1).second+a.at(i+l).second>=4) an+=a.at(i-l+1).second+a.at(i+l).second;
                else if (l==1 && a.at(i-l+1).second+a.at(i+l).second>=4) an+a.at(i-l+1).second+a.at(i+l).second;
                else break;
                l++;
            }
            ans=max(ans,an);
            an=0;
            l=1;
            while (true){
                if (i-l==-1 || i+l-1==a.size()) break;
                if (a.at(i-l).first==a.at(i+l-1).first && a.at(i-l).second+a.at(i+l-1).second>=4) an+=a.at(i-l).second+a.at(i+l-1).second;
                else if (l==1 && a.at(i-l).second+a.at(i+l-1).second>=4) an+a.at(i-l).second+a.at(i+l-1).second;
                else break;
                l++;
            }
            ans=max(ans,an);
        }
        else {
            int an=0;
            int l=1;
            while (true){
                if (i-l+2==-1 || i+l==a.size()) break;
                if (l!=2 && l!=1 && a.at(i-l+2).first==a.at(i+l).first && a.at(i-l+2).second+a.at(i+l).second>=4) an+=a.at(i-l+2).second+a.at(i+l).second;
                else if (l==1 && 1+a.at(i+l).second>=4) an+=4;
                else if (l==2 && a.at(i).second-1+a.at(i+l).second>=4) an+=a.at(i).second-1+a.at(i+l).second;
                else break;
                l++;
            }
            ans=max(ans,an);
            an=0;
            l=1;
            while (true){
                if (i-l==-1 || i+l-2==a.size()) break;
                if (l!=2 && l!=1 && a.at(i-l).first==a.at(i+l-2).first && a.at(i-l).second+a.at(i+l-2).second>=4) an+=a.at(i-l).second+a.at(i+l-2).second;
                else if (l==1 && 1+a.at(i-l).second>=4) an+=4;
                else if (l==2 && a.at(i).second-1+a.at(i-l).second>=4) an+=a.at(i).second-1+a.at(i-l).second;
                else break;
                l++;
            }
            ans=max(ans,an);
        }
    }
    cout << n-ans << endl;
}
}



Measured memory_bytes: 3116