#include <bits/stdc++.h>   using namespace std;   double pi = 4 * atan(1.0);   double eps = 1e-9;   string stringmin =  ! ;   string stringmax =  ~ ;   int main() {     cout.precision(14);     int n;     cin >> n;     vector<int> v(n), vlen(n);     for (auto &i1 : v) cin >> i1;     for (int i = 0; i < n; i++) {       int f1 = 0;       int q = i;       for (int j = 0; j < 101; j++) {         q = v[q] - 1;         if (q == i) {           f1 = 1;           vlen[i] = j + 1;           break;         }       }       if (!f1) {         cout << -1;         return 0;       }     }     for (auto &i1 : vlen)       if ((i1 & 1) == 0) i1 >>= 1;     long long ans = 1;     for (int i = 2; i < 110; i++) {       int maxcnt = 0;       for (auto &i1 : vlen) {         int cnt = 0;         while (i1 % i == 0) {           cnt++;           i1 /= i;         }         maxcnt = max(cnt, maxcnt);       }       for (int j = 0; j < maxcnt; j++) ans *= i;     }     cout << ans;     return 0;   }   