#include using namespace std; using ll=long long; template inline bool chmin(T&x,U y){if(x>y){x=y;return true;}return false;} template inline bool chmax(T&x,U y){if(x=0;--i) #define iFr(i,n) for(int i=(n);i>0;--i) int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); int n,a; cin>>n>>a;--a; vector b(1,a),v[100000]; v[a].emplace_back(0); fr(i,n-1){ cin>>a;--a; if(a!=b.back()) v[a].emplace_back(b.size()),b.emplace_back(a); } bool f{}; fr(i,n){ if(v[i].size()>2) return puts("-1"),0; else if(v[i].size()==2&&!(v[i][0]==0&&v[i][1]+1==b.size())) return puts("-1"),0; else if(v[i].size()==2) f=true; } cout<