#include <iostream>
#include <vector>
#include <algorithm>
#include <utility>
#include <fstream>
using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");
int main()
{
int n,min_i=0,max_i=0,u_i=0,i;
fin>>n;
vector<pair<int,int>>v(n);
for (int i=1;i<=n;i++)
{fin>>v[i].first;
v[i].second=i;
}
sort (v.begin()+1,v.end());
min_i=v[1].second;
max_i=v[1].second;
u_i=v[1].second;
bool ok=true;
for (i=1;i<=n;i++){
if (v[i].first!=v[i-1].first){
if (v[i].second<min_i) min_i=v[i].second;
if (v[i].second>max_i) max_i=v[i].second;
if (v[i].second>u_i)u_i=v[i].second;
}else {
ok=false;
break;}
}
if (!ok)
fout<<-1<<'\n';
else
fout<<(max_i-min_i+1);
return 0;
}