#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef pair P; typedef tuple T; const int INF = 1000000000; const int MOD = 1000000007; int main(){ int n; cin >> n; vector a(n); for(int i = 0;i < n;i++)cin >> a[i]; vector b; for(int i = 0;i < n;i++){ int j = i; while(j < n && a[j] == a[i]){ j++; } b.push_back(a[i]); i = j-1; } int m = b.size(); map prev; for(int i = 0;i < m;i++){ if(prev[b[i]] == 0)prev[b[i]] = i+1; else if(prev[b[i]] + 1 < i+1){ if(!(prev[b[i]] == 1 && i+1 == m)){ cout << -1 << endl; return 0; } } } if(m == 1)cout << 0 << endl; else{ if(b[0] == b[m-1])cout << 1 << endl; else cout << 0 << endl; } }