You are given n integers a_1, a_2, …, a_n. Find the maximum value of max(a_l, a_{l + 1}, …, a_r) ⋅ min(a_l, a_{l + 1}, …, a_r) over all pairs (l, r) of integers for which 1 ≤ l < r ≤ n.

Input

The first line contains a single integer t (1 ≤ t ≤ 10 000) — the number of test cases.

The first line of each test case contains a single integer n (2 ≤ n ≤ 10^5).

The second line of each test case contains n integers a_1, a_2, …, a_n (1 ≤ a_i ≤ 10^6).

It is guaranteed that the sum of n over all test cases doesn't exceed 3 ⋅ 10^5.

Output

For each test case, print a single integer — the maximum possible value of the product from the statement.

Example

Input


4
3
2 4 3
4
3 2 3 1
2
69 69
6
719313 273225 402638 473783 804745 323328


Output


12
6
4761
381274500335

Note

Let f(l, r) = max(a_l, a_{l + 1}, …, a_r) ⋅ min(a_l, a_{l + 1}, …, a_r).

In the first test case, 

  * f(1, 2) = max(a_1, a_2) ⋅ min(a_1, a_2) = max(2, 4) ⋅ min(2, 4) = 4 ⋅ 2 = 8. 
  * f(1, 3) = max(a_1, a_2, a_3) ⋅ min(a_1, a_2, a_3) = max(2, 4, 3) ⋅ min(2, 4, 3) = 4 ⋅ 2 = 8. 
  * f(2, 3) = max(a_2, a_3) ⋅ min(a_2, a_3) = max(4, 3) ⋅ min(4, 3) = 4 ⋅ 3 = 12. 



So the maximum is f(2, 3) = 12.

In the second test case, the maximum is f(1, 2) = f(1, 3) = f(2, 3) = 6.
import java.util.Scanner;

public class Codeforces {
	static Scanner sc=new Scanner(System.in);
	
	public static void main(String[] args) {
		int t=1;
		t=sc.nextInt();
		
		while(t-->0) {
			solve();
		}
		
	}

	private static void solve() {
		
		int size=sc.nextInt();
		long arr[]=new long[size];
		for(int i=0;i<size;i++) {
			arr[i]=sc.nextLong();
		}
		if(size==2) {
			System.out.println(arr[0]*arr[1]);
			return;
		}
		long max=0;
		for(int i=0;i<size-1;i++) {
			if(arr[i]*arr[i+1]>max) {
				max=arr[i]*arr[i+1];
			}
		}
		
		System.out.println(max);
		
		
		/*
		 * long n=sc.nextLong(); if(n<6) { System.out.println(15); return ; } long
		 * small=n/6;
		 * 
		 * long left=n%6; if(left==0) { System.out.println(small*15); }else if(left<=2)
		 * { long time=(small-1)*15+20; System.out.println(time); }else if(left<=4) {
		 * long time=(small-1)*15+25; System.out.println(time); }else {
		 * System.out.println((small+1)*15); }
		 */
		
		/*
		 * int x=sc.nextInt(); System.out.println((x+1)/10);
		 */		
		/*int n=sc.nextInt();
		int arr[]=new int[n];
		for(int i=0;i<n;i++) {
			arr[i]=sc.nextInt();
		}
		
		int sl=Integer.MIN_VALUE;
		int fl=Integer.MIN_VALUE;
		
		for(int i=0;i<n;i++) {
			if(arr[i]>fl) {
				sl=fl;
				fl=arr[i];
			}else if(arr[i]>sl && arr[i]!=fl) {
				sl=arr[i];
			}
		}
		System.out.println(fl+"  "+sl);
		if(sl==Integer.MIN_VALUE) {
			System.out.println(fl*fl);
		}else {
			System.out.println((long)fl*sl);
		}
		
		*/
	}

	/*private static void solve() {
		int l=sc.nextInt();
		int t=sc.nextInt();
		String str=sc.next();//.substring(0,l);
		while(t-->0) {
			int low=sc.nextInt();
			int upper=sc.nextInt();
			if(low<0 || upper>l) {
				return ;
			}
			String subStr=str.substring(low-1,upper);
			
			int count=0;
			for(int i=0;i<subStr.length();i++) {
				count+= subStr.charAt(i)-'a'+1;
			}
			System.out.println(count);
			
			
		}
	}*/
}
