#include void setData(int n); int delCalc(int sp); int datas[10003]; int main(){ int n; scanf("%d",&n); while(n!=0){ setData(n); scanf("%d",&n); } } void setData(int n){ datas[0]=4; for(int i=1;i<=n;i++){ scanf("%d",&datas[i]); } datas[n+1]=4; int t; int ans=0,tans; for(int i=1;i<=n;i++){ for(int j=1;j<4;j++){ if(datas[i]==j) continue; t=datas[i]; datas[i]=j; tans=delCalc(i); ans=tans>ans?tans:ans; datas[i]=t; } } printf("%d\n",n-ans); } int delCalc(int sp){ int p1,p2,oldP1,oldP2,nowC,delCount; p1=sp; p2=sp; while(1){ oldP1=p1; oldP2=p2; if(datas[p1]!=datas[p2] || datas[p1]==4 || datas[p2]==4){ return p1-p2-1; } nowC=datas[p1]; while(datas[p1]==nowC){ p1++; } while(datas[p2]==nowC){ p2--; } if(oldP1==oldP2){ delCount=p1-p2-1; }else{ delCount=p1-oldP1+oldP2-p2; } if(delCount<4){ if(oldP1==oldP2) return 0; return oldP1-oldP2-1; } } }