#include <bits/stdc++.h>

using namespace std;

const int N = 1e5+5;

int n;
int a[N];
int b[N], c[N], c1, c2;
int ans;
int last[N], nxt[N];

int main()
{
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
	
	for (int i = 1; i <= n; i++) last[i] = n+1;
	for (int i = n; i >= 1; i--) {
		nxt[i] = last[a[i]];
		last[a[i]] = i;
//		printf("nxt[%d] = %d\n", i, nxt[i]);
	}
	nxt[0] = n+1;
	
	b[++c1] = 1;
	for (int i = 2; i <= n; i++) {
		if (a[b[c1]] == a[i]) {
			b[++c1] = i;
		}
		else if (a[c[c2]] == a[i]) {
			c[++c2] = i;
 		}
		else {
			if (i == n) c[++c2] = i;
			else {
//				if (a[i+1] == b[c1]) {
//					c[++c2] = a[i];
//				}
//				else if (a[i+1] == c[c2]) {
//					b[++c1] = a[i];
//				}
//				else c[++c2] = a[i];

				if (nxt[b[c1]] < nxt[c[c2]]) {
					c[++c2] = i;
				}
				else {
					b[++c1] = i;
				}
			}
		}
	}
	
	for (int i = 1; i <= c1; i++) {
//		printf("b[%d] = %d\n", i, b[i]);
		if (a[b[i]] != a[b[i-1]]) ans++;
	}
	for (int i = 1; i <= c2; i++) {
//		printf("c[%d] = %d\n", i, c[i]);
		if (a[c[i]] != a[c[i-1]]) ans++;
	}
	
	printf("%d", ans);
	
	return 0;
}