#include <bits/stdc++.h>
using namespace std;
#define fastio ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define lli long long int
#define tc int t;cin>>t;while(t--)
#define all(x) x.begin(),x.end()
#define f first
#define s second
#define pb push_back
#define pi pair<int,int>
#define pll pair<lli,lli>
#define vi vector<int>
#define vll vector<lli>
#define vpi vector<pair<int,int> > 
#define vpll vector<pair<lli,lli> > 
#define vvi vector<vector<int> >
#define vvll vector<vector<lli> >
#define vvpi vector<vector<pair<int,int> > >
#define vvpll vector<vector<pair<lli,lli> > >
#define maxn 100005
#define inf 1000000000
lli mod=(1ll<<63);


int main(){
    fastio;
    int n;
    cin>>n;
    vi a;
    int prv[n+1],nx[n+1];
    memset(prv,-1,sizeof(prv));
    for(int i=0;i<=n;i++){
        nx[i]=n+1;
    }
    for(int i=0;i<n;i++){
        a.pb(0);
        cin>>a[i];
    }
    vi b;
    int ad=0;
    for(int i=0;i<n;i++){
        int j=i+1;
        while(j<n and a[i]==a[j]){
            j++,ad++;
        }
        b.pb(a[i]);
        i=j-1;
    }
    a=b;
    n=a.size();
    int ans=n;
    for(int i=0;i<n;i++){
        if(prv[a[i]]!=-1){
            nx[prv[a[i]]]=i;
        }
        prv[a[i]]=i;
    }
    int xl=-1,yl=-1;
    for(int i=0;i<n;i++){
        if(xl==-1){
            xl=i;
            continue;
        }
        if(i==nx[xl]){
            xl=i;ans--;
            continue;
        }        
        if(yl==-1){
            yl=i;
            continue;
        }
        if(i==nx[yl]){
            yl=i;ans--;
            continue;
        }
        if(nx[xl]<nx[yl]){
            yl=i;continue;
        }
        else{
            xl=i;continue;
        }
        
    }
    cout<<ans<<"\n";
    return 0;
}