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

import java.util.*;
import java.lang.*;
import java.io.*;

public class Solution {
    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        int testCases = sc.nextInt();
        for (int unq = 0; unq < testCases; unq++) {
            int n = sc.nextInt();

            int ans = 0;
            int max = 0;
            int[] a = new int[n];
            for (int i = 0; i < n; i++) {
                a[i] = sc.nextInt();
                if(a[i] > a[max])
                    max = i;
            }

            for (int i = 1; i < n; i++) {

            }

            boolean atleastOneDistinctElement = false;
            for (int i = 1; i<n; i++) {
                if (a[i] != a[0]) {
                    atleastOneDistinctElement = true;
                    break;
                }
            }

            int smallerIndex = -1;
            for (int i = 0; i<n; i++) {
                if(a[i] < a[max]) {
                    smallerIndex = i;
                    break;
                }
            }

            if(atleastOneDistinctElement && smallerIndex == 0) {
                for(int i = smallerIndex; i<n; i++) {
                    if(a[i] == a[max]) {
                        ans = i;
                        break;
                    }
                }
            } else if(atleastOneDistinctElement){
                for(int i = 0; i<=smallerIndex; i++) {
                    if(a[i] == a[max])
                        ans = i;
                }
            }


            if(!atleastOneDistinctElement)
                System.out.println(-1);
            else
                System.out.println(ans+1);
        }
    }

    private static int gcd(int number1, int number2) {
        if (number2 == 0)
            return number1;
        return gcd(number2, number1 % number2);
    }
}

class intPair {
    public int val1;
    public int val2;

    public intPair(int v1, int v2) {
        val1 = v1;
        val2 = v2;
    }

    @Override
    public String toString() {
        return "(" + val1 + ", " + val2 + ")";
    }
}

class SortArrayPair implements Comparator<intPair> {
    @Override
    public int compare(intPair o1, intPair o2) {
        return o1.val1 - o2.val1;
    }
}

class Scanner {
    StringTokenizer st;
    BufferedReader br;

    public Scanner(InputStream s) {
        br = new BufferedReader(new InputStreamReader(s));
    }

    public String next() throws IOException {
        while (st == null || !st.hasMoreTokens())
            st = new StringTokenizer(br.readLine());
        return st.nextToken();
    }

    public int nextInt() throws IOException {
        return Integer.parseInt(next());
    }

    public long nextLong() throws IOException {
        return Long.parseLong(next());
    }

    public String nextLine() throws IOException {
        return br.readLine();
    }

    public double nextDouble() throws IOException {
        String x = next();
        StringBuilder sb = new StringBuilder("0");
        double res = 0, f = 1;
        boolean dec = false, neg = false;
        int start = 0;
        if (x.charAt(0) == '-') {
            neg = true;
            start++;
        }
        for (int i = start; i < x.length(); i++)
            if (x.charAt(i) == '.') {
                res = Long.parseLong(sb.toString());
                sb = new StringBuilder("0");
                dec = true;
            } else {
                sb.append(x.charAt(i));
                if (dec)
                    f *= 10;
            }
        res += Long.parseLong(sb.toString()) / f;
        return res * (neg ? -1 : 1);
    }

    public boolean ready() throws IOException {
        return br.ready();
    }
}