#include "stdio.h"

int color[10000] = {};
int num;
int start;
int end;
int now;
int right;
int left;
int ans = 10000;

int max(int a, int b) {
	if (a > b)return a;
	return b;
}

int min(int a, int b) {
	if (a < b)return a;
	return b;
}

int main() {
	ans = num;
	scanf("%d", &num);
	while (num != 0) {
		ans = num;
		for (int i = 0; i < num; i++) {
			scanf("%d", &color[i]);
		}
		for (int i = 0; i < num; i++) {
			for (int j = 1; j < 4; j++) {
			//	printf("%d?????????%d????????§??????\n", i, j);
				start = i;
				end = i;
				now = j;
				while (1) {
					left = 0;
					right = 0;
					//printf("%d???????????¨%d?????????????????????\n", start, end);
					for (int k = end; k < num; k++) {
						if (color[k] != now&&i!=k)break;
					//	printf("%d ", k);
						right++;
					}
				//	printf("\n");
					for (int k = start; k >= 0; k--) {
						if (color[k] != now&&i!=k)break;
					//	printf("%d ", k);
						left++;
					}
				//	printf("\n");
					if (left + right < 4&&end!=start)break;
					if (left + right < 5 && end == start)break;
					if(start-(left)>=0)	start -=(left);
					else start = -1;
					if (end + (right) < num)end += right;
					else end = num;
					if (start < 0)break;
					if (end >= num)break;
					if (color[start] != color[end])break;
					now = color[start];
				}
				if (ans > num - end + start+1)ans = num - end + start+1;
			}
		}
		printf("%d\r\n", ans);
		scanf("%d", &num);		
	}

	return 0;
}