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.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
 
public class Main 
{
    static ArrayList<Integer> ar=new ArrayList<>();
    static long fAns;
    static long fact(long j)
    {
        if(j==1)
        return 1;
        return j*fact(j-1);
    }
    static int gcd(int a,int b)
    {
        if(a==0)
        return b;
        return gcd(b%a,a);
    }
    static void f1(long a,long b)
    {
        
        fAns+=b/a;
        if(b%a==0)
        return;
        
        
        if(b%a>0)
        f1(b%a,a);
        
    }
    static long noOfDivisors(long n)
    {
        long ans=0l;
        if(n%2==0)
        ans++;
        while(n%2==0)
        {
            n/=2;
        }
        
        for(int i=3;i<=Math.sqrt(n);i+=2)
        {
            if(n%i==0)
            {
                while(n%i==0)
                {
                    n/=i;
                }
                ans++;
            }
        }
        if(n>2)
        ans++;
        return ans;
    }
    static void seive()
    {
        int i,j;
        boolean a[]=new boolean[32001];
        for(i=2;i<=Math.sqrt(32000);i++)
        {
            for(j=i*i;j<=32000;j+=i)
            a[j]=true;
        }
        for(i=2;i<=32000;i++)
        if(!a[i])
        ar.add(i);
    }
    static int sum(long n)
    {
        int k=0;
        while(n>0)
            {
                k+=n%10;
                n/=10;
            }
            return k;
    }
	public static void main(String[] args) {
		FastScanner fs=new FastScanner();
		int T=fs.nextInt();
		int i,j,n,k,l,r;
// 		long n,m;
        // int T=1;
        long ans=0l,max=0l;
        // seive();
		outer:for (int tt=0; tt<T; tt++) 
		{
			n=fs.nextInt();
			ans=0l;
// 			k=fs.nextInt();
// 			m=fs.nextLong();
// 			ans=fs.nextLong();
// 			max=fs.nextLong();
			long a[]=new long[n];
			for(i=0;i<n;i++)
			a[i]=fs.nextLong();
// 			Stack<Long> st=new Stack<>();
			for(i=0;i<n;i++)
			{
			    if(a[i]>ans)
			    ans=a[i];
			}
			for(i=0;i<n;i++)
			{
			    if(a[i]==ans)
			    {
			        if((i+1<n&&a[i+1]<a[i])||(i-1>=0&&a[i-1]<a[i]))
			        {
			            System.out.println(i+1);
			            continue outer;
			        }
			    }
			}
			System.out.println(-1);
// 			int b[]=new int[5];
// 			Arrays.sort(a);
            // int ar[]=new int[51];
		}
	}
 
	static final Random random=new Random();
	
	static void ruffleSort(int[] a) {
		int n=a.length;//shuffle, then sort 
		for (int i=0; i<n; i++) {
			int oi=random.nextInt(n), temp=a[oi];
			a[oi]=a[i]; a[i]=temp;
		}
		Arrays.sort(a);
		
	}
	
	static class FastScanner {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st=new StringTokenizer("");
		String next() {
			while (!st.hasMoreTokens())
				try {
					st=new StringTokenizer(br.readLine());
				} catch (IOException e) {
					e.printStackTrace();
				}
			return st.nextToken();
		}
		
		int nextInt() {
			return Integer.parseInt(next());
		}
		int[] readArray(int n) {
			int[] a=new int[n];
			for (int i=0; i<n; i++) a[i]=nextInt();
			return a;
		}
		long nextLong() {
			return Long.parseLong(next());
		}
	}
 
	
}