Highway 201 is the most busy street in Rockport. Traffic cars cause a lot of hindrances to races, especially when there are a lot of them. The track which passes through this highway can be divided into n sub-tracks. You are given an array a where a_i represents the number of traffic cars in the i-th sub-track. You define the inconvenience of the track as ∑_{i=1}^{n} ∑_{j=i+1}^{n} \lvert a_i-a_j\rvert, where |x| is the absolute value of x. 

You can perform the following operation any (possibly zero) number of times: choose a traffic car and move it from its current sub-track to any other sub-track.

Find the minimum inconvenience you can achieve.

Input

The first line of input 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 (1≤ n≤ 2⋅ 10^5).

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

It is guaranteed that the sum of n over all test cases does not exceed 2⋅ 10^5.

Output

For each test case, print a single line containing a single integer: the minimum inconvenience you can achieve by applying the given operation any (possibly zero) number of times.

Example

Input


3
3
1 2 3
4
0 1 1 0
10
8 3 6 11 5 2 1 7 10 4


Output


0
4
21

Note

For the first test case, you can move a car from the 3-rd sub-track to the 1-st sub-track to obtain 0 inconvenience.

For the second test case, moving any car won't decrease the inconvenience of the track.
import java.io.*;
import java.util.*; 
public class H {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = null;
        int t = 1;
        
        t = Integer.parseInt(br.readLine());

        while(t-->0) {
            //write code...
            int n = Integer.parseInt(br.readLine());
            st = new StringTokenizer(br.readLine());
            long sum = 0;
            for(int i=0; i<n; i++) {
                sum += Integer.parseInt(st.nextToken());
            }

            long ex = n - sum%n;
            System.out.println(ex*(sum%n));
        }
    }


    static boolean[] isPrime;
    public static void sieve(int n) {
        isPrime = new boolean[n+1];
        Arrays.fill(isPrime, true);
        isPrime[0] = isPrime[1] = false;
        for(int i=2; i*i<=n; i++) {
            if(isPrime[i]) {
                for(int j=i*i; j<=n; j+=i) {
                    isPrime[j] = false;
                }
            }
        }
    }


    public static long pow(long a, long b ) {
        long res = 1;
        while(b>0) {
            if((b&1)==1)
                res *= a;
            a *= a;
            b >>= 1;
        }
        return res;
    }

    public static long gcd(long a, long b) {
        while (b!=0) {
            a %= b;
            long t = a;
            a = b;
            b = t;
        }
        return a;
    }

    public static long lcm(long a, long b) {
        return a*b/gcd(a,b);
    }
}

class Pair {
    int f;
    int s;
    Pair() {}
    Pair(int f, int s) {
        this.f = f;
        this.s = s;
    }
}