#include "bits/stdc++.h" using namespace std; //#include "atcoder/all" //using namespace atcoder; #define int long long #define REP(i, n) for (int i = 0; i < (int)n; ++i) #define RREP(i, n) for (int i = (int)n - 1; i >= 0; --i) #define FOR(i, s, n) for (int i = s; i < (int)n; ++i) #define RFOR(i, s, n) for (int i = (int)n - 1; i >= s; --i) #define ALL(a) a.begin(), a.end() #define IN(a, x, b) (a <= x && x < b) templateistream&operator >>(istream&is,vector&vec){for(T&x:vec)is>>x;return is;} templateinline void out(T t){cout << t << "\n";} templateinline void out(T t,Ts... ts){cout << t << " ";out(ts...);} templateinline bool CHMIN(T&a,T b){if(a > b){a = b;return true;}return false;} templateinline bool CHMAX(T&a,T b){if(a < b){a = b;return true;}return false;} constexpr int INF = 1e18; signed main(){ int N; cin >> N; vectora, b(N); cin >> b; REP(i, N) { if(a.empty() || a.back() != b[i]) a.emplace_back(b[i]); } map mp; for(auto e: a) mp[e]++; for(auto[val, count]: mp) { if(count >= 3) { out(-1); return 0; } } for(auto[val, count]: mp) { if(count == 2) { if(val == a[0] && val == a.back()) continue; out(-1); return 0; } } if(a.size() >= 2 && a[0] == a.back()) out(1); else out(0); }