// Slower C++ solution:


#include <iostream>

#include <climits>

#include <bitset>

#include <stack>

#include <queue>

#include <iomanip>

#include <limits>

#include <string>

#include <cmath>

#include <set>

#include <map>

#include <math.h>

#include <algorithm>

#include <vector>

#include <string.h>

#include <complex>



using namespace std;

typedef long long ll;





typedef complex<double> xy_t;

double dot_product(xy_t a, xy_t b) { return (conj(a)*b).real(); }

double cross_product(xy_t a, xy_t b) { return (conj(a)*b).imag(); }



typedef pair<ll,ll> P;

long long int INF = 1e18;

double Pi = 3.141592653589;

const int mod = 1000000007;

// memset(a,0,sizeof(a)); →全部０にする



vector<int> G[100005];

std::vector<P> tree[100010];



int dx[9]={1,0,-1,0,1,1,-1,-1,0};

int dy[9]={0,1,0,-1,1,-1,-1,1,0};



#define p(x) cout<<x<<endl;

#define el cout<<endl;

#define pe(x) cout<<x<<" ";

#define ps(x) cout<<fixed<<setprecision(25)<<x<<endl;

#define re(i,a,b) for(i=a;i<=b;i++)

#define pb push_back

#define lb lower_bound

#define ub upper_bound



ll i,j,k,ii,jj;

ll n,m,sum,num;

ll ans=0;

ll a,b,c,d,e,h,w;



ll x[500005],y[500005],z[500005];

char s[100005],t[100005];

bool ok=false;

bool check[100005];



int main(){

    cin>>n;

    for(i=0;i<n;i++)cin>>x[i];

    for(i=0;i<n-1;i++){

        if(x[i]==x[i+1]){

            ans++;

            i++;

        }

    }

    p(ans);

    return 0;

}


// Faster C++ solution for the same problem (measured speedup: 6.324683589050011x):
#include <bits/stdc++.h>

#include <unistd.h>

#include <sys/time.h>

#include <stdlib.h>

 

using namespace std;

 

typedef long long ll;

typedef pair<ll,ll> P;

typedef pair<P, ll> T;

 

long long int INF = 2e18;

const ll fact_table = 1200008;

double Pi = 3.1415926535897932384626;



priority_queue <ll> pql;

priority_queue <P> pqp;

priority_queue <P> bag;

//big priority queue

priority_queue <ll,vector<ll>,greater<ll> > pqls;

priority_queue <P,vector<P>,greater<P> > pqps;

//small priority queue

//top pop

 

ll dx[8]={1,0,-1,0,1,1,-1,-1};

ll dy[8]={0,1,0,-1,1,-1,-1,1};

char dir[] = "DRUL";

//↓,→,↑,←



#define endl "\n"

#ifdef ENJAPMA

    #undef endl

#endif

#define p(x) cout<<x<<endl;

#define el cout<<endl;

#define pe(x) cout<<x<<" ";

#define ps(x) cout<<fixed<<setprecision(25)<<x<<endl;

#define pu(x) cout<<(x);

#define pb push_back

#define lb lower_bound

#define ub upper_bound

#define CLEAR(a) a = decltype(a)(); 

#define pc(x) cout << x << ",";

#define rep(i,n) for (ll i = 0; i < (n); i++)

 

const ll mod = 998244353ll;

// const ll mod = 1000000007ll;

  

ll mypow(ll number1,ll number2, ll mod){

    if(number2 == 0){

        return 1ll;

    }else{

        ll number3 = mypow(number1,number2 / 2, mod);

        number3 *= number3;

        number3 %= mod;

        if(number2%2==1){

            number3 *= number1;

            number3 %= mod;

        }

        return number3;

    }

}

void YES(bool condition){

    if(condition){ p("YES"); }else{ p("NO"); }

    return;

}

void Yes(bool condition){

    if(condition){

        p("Yes");

    }else{

        p("No");

    }

    return;

}



ll mygcd(ll a, ll b){

    if(b > a)swap(a, b);

    if(a == b || b == 0)return a;

    return mygcd(b, a % b);

}

/*



ll fact[fact_table + 5],rfact[fact_table + 5]; 

 

void c3_init(){

    fact[0] = rfact[0] = 1;

    for(ll i=1; i<=fact_table; i++){

        fact[i] = (fact[i-1]*i) % mod;

    }

    rfact[fact_table] = mypow(fact[fact_table],mod - 2, mod);

    for(ll i=fact_table; i>=1; i--){

       rfact[i-1] = rfact[i] * i;

       rfact[i-1] %= mod;

    }

    return;}

ll c3(ll n,ll r){

    assert(n >= r);

    assert(n >= 0);

    assert(r >= 0);

    return (((fact[n] * rfact[r]) % mod ) * rfact[n-r]) % mod;}

*/



// auto res = NTT::conv(mod, 3ll, atable, btable);



bool multicase = false;



ll n,m,num,a,b,c,d,e,q, w, ans ;

ll x[500005], y[500005];

ll r, k;

string s;



void solve(){

    cin >> n;

    ll cnt = 0;

    for(ll i=0;i<n;i++){

        cin >> x[i];

        if(i == 0 || x[i] == x[i-1]){

            cnt ++;

        }else{

            ans += cnt / 2;

            cnt = 1;

        }

    }

    ans += cnt / 2;

    p(ans);

    return;

}



int main(){

    // init();

    ios::sync_with_stdio(false);

    cin.tie(nullptr);

    ll q, testcase = 1;

    if(multicase){

        cin >> q;

    }else{

        q = 1; 

    }

    while(q--){

        // pu("Case ");pu("#");pu(testcase);pu(": ");

        solve();

        testcase++;

    }

    // solve();

    return 0;

}