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.*;
import java.math.BigInteger;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.math.BigInteger;
import java.util.List;
import java.util.Map;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;

public class k
{
	 static class Reader {
		 
	        final private int BUFFER_SIZE = 1 << 16;
	        private DataInputStream din;
	        private byte[] buffer;
	        private int bufferPointer, bytesRead;
	 
	        public Reader()
	        {
	            din = new DataInputStream(System.in);
	            buffer = new byte[BUFFER_SIZE];
	            bufferPointer = bytesRead = 0;
	        }
	 
	        public Reader(String file_name) throws IOException
	        {
	            din = new DataInputStream(
	                new FileInputStream(file_name));
	            buffer = new byte[BUFFER_SIZE];
	            bufferPointer = bytesRead = 0;
	        }
	 
	        public String readLine() throws IOException
	        {
	            byte[] buf = new byte[64]; // line length
	            int cnt = 0, c;
	            while ((c = read()) != -1) {
	                if (c == '\n') {
	                    if (cnt != 0) {
	                        break;
	                    }
	                    else {
	                        continue;
	                    }
	                }
	                buf[cnt++] = (byte)c;
	            }
	            return new String(buf, 0, cnt);
	        }
	 
	        public int nextInt() throws IOException
	        {
	            int ret = 0;
	            byte c = read();
	            while (c <= ' ') {
	                c = read();
	            }
	            boolean neg = (c == '-');
	            if (neg)
	                c = read();
	            do {
	                ret = ret * 10 + c - '0';
	            } while ((c = read()) >= '0' && c <= '9');
	 
	            if (neg)
	                return -ret;
	            return ret;
	        }
	 
	        public long nextLong() throws IOException
	        {
	            long ret = 0;
	            byte c = read();
	            while (c <= ' ')
	                c = read();
	            boolean neg = (c == '-');
	            if (neg)
	                c = read();
	            do {
	                ret = ret * 10 + c - '0';
	            } while ((c = read()) >= '0' && c <= '9');
	            if (neg)
	                return -ret;
	            return ret;
	        }
	 
	        public double nextDouble() throws IOException
	        {
	            double ret = 0, div = 1;
	            byte c = read();
	            while (c <= ' ')
	                c = read();
	            boolean neg = (c == '-');
	            if (neg)
	                c = read();
	 
	            do {
	                ret = ret * 10 + c - '0';
	            } while ((c = read()) >= '0' && c <= '9');
	 
	            if (c == '.') {
	                while ((c = read()) >= '0' && c <= '9') {
	                    ret += (c - '0') / (div *= 10);
	                }
	            }
	 
	            if (neg)
	                return -ret;
	            return ret;
	        }
	 
	        private void fillBuffer() throws IOException
	        {
	            bytesRead = din.read(buffer, bufferPointer = 0,
	                                 BUFFER_SIZE);
	            if (bytesRead == -1)
	                buffer[0] = -1;
	        }
	 
	        private byte read() throws IOException
	        {
	            if (bufferPointer == bytesRead)
	                fillBuffer();
	            return buffer[bufferPointer++];
	        }
	 
	        public void close() throws IOException
	        {
	            if (din == null)
	                return;
	            din.close();
	        }
	 }


	public static void main(String args[]) throws NumberFormatException, IOException ,java.lang.Exception
	{
		
		Reader reader = new Reader();
		//char x=reader.
		//Scanner reader=new Scanner(System.in);
		BufferedWriter output = new BufferedWriter(new OutputStreamWriter(System.out));
   	//BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
   	//int cases=Integer.parseInt(br.readLine());
    //int cases=1;	
   int cases=reader.nextInt();
		
   	while (cases-->0){
   	
   		int a=reader.nextInt();
   		//String[] first=br.readLine().split(" ");
   		//int X=Integer.parseInt(first[0]);
   		//int Y=Integer.parseInt(first[1]);
   		//int X=reader.nextInt();
//   		int Y=reader.nextInt();
   		int[] arr=new int[a];
   		boolean exist=false;
   		arr[0]=reader.nextInt();
   		int max=arr[0];
   		int ind=0;
   		//boolean found=false;
   		for(int i=1;i<a;i++)
   		{
   			arr[i]=reader.nextInt();
   			if(arr[i]!=arr[i-1])exist=true;
   			if(arr[i]>max)
   			{
   				max=arr[i];
   				ind=i;
   			}
   			//max=Math.max(max, arr[i]);
   		}
   		if(exist)
   		{
   			int fin=-1;
   			for(int i=ind+1;i<a;i++)
   			{
   				if(arr[i]!=max) {fin=i-1;break;}
   			}
   			if(fin==-1)
   			{
   				for(int i=ind-1;i>=0;i--)
   	   			{
   	   				if(arr[i]!=max) {fin=i+1;break;}
   	   			}
   			}
   			System.out.println(fin+1);
   		}
   		else System.out.println(-1);
   			
   		
   		
             }
  // 	output.flush();
	}
}