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.io.*;

public class Solution {
	public static void main(String[] args) throws IOException {
		Reader sc=new Reader();
		Print pr=new Print();
		int t=sc.nextInt();
		while(t-->0) {
			int n=sc.nextInt();
			int a[]=new int[n];
			int max=0;
			boolean same=true;
			for(int i=0;i<n;i++)
				a[i]=sc.nextInt();
			for(int i=0;i<n-1;i++)
				if(a[i]!=a[i+1]) {
					same=false;
					break;
				}
			int ans=-1;
			if(!same) {
				for(int i=0;i<n;i++)
					if(a[i]>ans)
						ans=a[i];
			}
			pr.printLine(""+ans);
		}
		pr.close();
	}

	/*
		
	*/

	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 { int cnt = 0, c;
            byte[] buf = new byte[64]; while ((c = read()) != -1) { if (c == '\n') 
            break; 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(); } 
    }

    static class Print {
        private final BufferedWriter bw;
        public Print() {
            bw=new BufferedWriter(new OutputStreamWriter(System.out)); }
        public void print(String str)throws IOException { bw.append(str); }
        public void printLine(String str)throws IOException { print(str); 
            bw.append("\n"); }
        public void close()throws IOException { bw.close(); } 
    }
}