#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
//#include<windows.h>
#include<queue>
#include<cstring>
using namespace std;
int n;
bool is_perfect(vector <int> a)
{
    int been[64];
    memset(been,0,sizeof(been));
    been[a[0]]=1;
    for(int i=1;i<a.size();i++)
        if(been[a[i]]==1 && a[i-1]!=a[i])return 0;
        else
        been[a[i]]=1;
    return 1;
}
vector <int> del_same(vector <int> a)
{
    for(int i=1;i<a.size();i++)
    if(a[i]==a[i-1]){a.erase(a.begin()+i);i--;}
    return a;
}
queue <vector<int> > gen;
int main()
{
    vector <int> start;
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        int x;
        cin>>x;
        start.push_back(x);
    }
    if(is_perfect(start)){cout<<0<<endl;return 0;}
    start=del_same(start);
    gen.push(start);
    int curgen=0;
    while(1)
    {
        //cout<<curgen+1<<endl;
        int ss=gen.size();
        for(int i=0;i<ss;i++)
        {
            //cout<<gen.front()[1]<<endl;
            if(is_perfect(gen.front())){cout<<curgen<<endl;return 0;}
            else
            for(int i=0;i<gen.front().size();i++)
            {
                vector <int> work=gen.front();
                int p=work[i];
                work.erase(work.begin()+i);
                for(int j=0;j<=work.size();j++)
                {
                    if(i!=j)
                        {
                            work.insert(work.begin()+j,p);
                            vector <int> work1;
                            work1=work;
                            work1=del_same(work);
                            if(is_perfect(gen.front())){cout<<curgen<<endl;return 0;}
                            //for(int i=0;i<work1.size();i++)cout<<work1[i]<<" ";
                            //cout<<endl;
                            //system("pause");
                            gen.push(work1);
                            work.erase(work.begin()+j);
                        }
                }
            //cout<<" asdasdsad" <<endl;
            }
            //cout<<"asdasd" <<endl;
            gen.pop();
        }
        curgen++;
    }
    return 0;
}
