1
3
5 3 4
 6
5
5 3 4 4 5
3
1 1 1
5
4 4 3 4 4
5
5 5 4 3 2
3
1 1 2
5
5 4 3 5 5
 1
3
10 1 5

1
 1
-1
2
2
3
1
 1

#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
const long long inf = 1e18 + 5;
const long long MX = 303030;
int cox[4] = {1, -1, 0, 0};
int coy[4] = {0, 0, 1, -1};
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
long long lcm(long long a, long long b) { return a * b / gcd(a, b); }
long long C(int a, int b) {
  if (b > a - b) b = a - b;
  long long res = 1;
  for (int i = 0; i < b; i++) res = res * (a - i) / (i + 1);
  return res;
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  int t{};
  cin >> t;
  while (t--) {
    int n{};
    cin >> n;
    vector<long long> v(n);
    set<long long> s;
    long long mx{};
    for (int i = 0, sz = (int)n; i < sz; i++) {
      cin >> v[i];
      if (mx < v[i]) mx = v[i];
      s.insert(v[i]);
    }
    if (s.size() == 1)
      cout << "-1\n";
    else {
      if (mx == v[n - 1]) {
        if (mx > v[n - 2]) {
          cout << n << '\n';
          continue;
        }
      }
      if (mx == v[0]) {
        if (mx > v[1]) {
          cout << "1\n";
          continue;
        }
      }
      int pos{-1};
      for (int i = 1, sz = (int)n - 1; i < sz; i++) {
        if (mx == v[i]) {
          if (mx > v[i + 1] || mx > v[i - 1]) {
            pos = i + 1;
            break;
          }
        }
      }
      cout << pos << '\n';
    }
  }
  return 0;
}
