#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,popcnt,tune=native")
#include<bits/stdc++.h>
using namespace std;

/* abbr */
#define pb push_back
#define eb emplace_back
#define fi first
#define se second

/* typedef for long long */

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, int> pli;
typedef pair<int, ll> pil;
typedef pair<ll, ll> pll;

/* typedef for other */

typedef long double ld;
typedef unsigned int uint;
typedef unsigned long long ull;

/* typedef for point */

//typedef pii point;
//#define x first
//#define y second

/* typedef for vector */

typedef vector<int> vi;
typedef vector<ll> vl;

/* constant number */

const int INF = 0x3f3f3f3f;
const ll LINF = 0x3f3f3f3f3f3f3f3fLL;
const double PI = acos(-1.0);
const double EPS = 1e-8;
const int MOD = 1e9 + 7;

ll qpow(ll x, ll n) {
    ll res = 1;
    while(n) {
        if(n & 1)
            res = res * x % MOD;
        x = x * x % MOD;
        n >>= 1;
    }
    return res;
}

namespace Solver {

    void InitOnce() {
#ifdef LOCAL
        freopen("A.txt", "r", stdin);
#endif // LOCAL
        int t;
        scanf("%d", &t);
    }

    int n;

    void Read() {
        int res = scanf("%d", &n);
        if(res == -1)
            exit(0);
    }

    pii a[200005];

    void Solve() {
        for(int i = 1; i <= n; ++i) {
            scanf("%d", &a[i].first);
            a[i].second = i;
        }
        sort(a + 1, a + 1 + n);
        int cur = 1;
        while(cur <= n) {
            while(cur + 1 <= n && a[cur + 1].first == a[cur].first)
                ++cur;
            if(cur - 1 >= 1 && a[cur].first == a[cur - 1].first)
                ++cur;
            else
                break;
        }
        if(cur > n) {
            puts("-1");
            return;
        }
        printf("%d\n", a[cur].second);
    }

}

int main() {
    Solver::InitOnce();
    while(true) {
        Solver::Read();
        Solver::Solve();
    }
    return 0;
}
