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

public class Main {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        //System.out.println(n);


        for (int i = 0; i < n; i++) {
            int nn = scan.nextInt();
            //System.out.println(nn);
            long [] ar = new long[nn];
            for(int ii = 0; ii < nn; ii++) {
                ar[ii] = scan.nextLong();
                //System.out.println(ar[ii]);
            }
            //System.out.println(ar);
            //String out = new Finder(nn, ar).find() + "";
            String out = find(ar) + "";
            System.out.println(out);
        }

    }

    public static long find (long[] ar) {
        long sum = 0;
        long N = ar.length;
        for (long a : ar) {
            sum = sum + a;
            if (sum > N) {
                sum = sum%N;
            }
        }

        long n = (sum%N);
        return (N-n)*n;
    }

    public static class Finder {

        private int n;
        private int[] ar;

        public Finder(int n, int[] ar) {
            this.n = n;
            this.ar = ar;
        }
        public int find() {

            int sum = sum(ar);

            while (true) {
                int minInd = findMinIndex(ar);
                int maxInd = findMaxIndex(ar);
                ar[minInd]++;
                ar[maxInd]--;
                int newSum = sum(ar);
                if (newSum >= sum) {
                    return sum;
                }
                sum = newSum;
            }

        }

        private int sum (int[] ar) {
            int out = 0;
            for (int i = 0; i < ar.length; i++) {
                for (int ii = i+1; ii < ar.length; ii++) {
                    out = out + Math.abs(ar[i] - ar[ii]);
                }
            }
            return out;
        }

        private int findMinIndex(int[] ar) {
            int min = ar[0];
            int index = 0;
            for (int i = 0; i < ar.length; i++) {
                if (ar[i] < min) {
                    min = ar[i];
                    index = i;
                }
            }
            return index;
        }


        private int findMaxIndex(int[] ar) {
            int max = ar[0];
            int index = 0;
            for (int i = 0; i < ar.length; i++) {
                if (ar[i] > max) {
                    max = ar[i];
                    index = i;
                }
            }
            return index;
        }

    }





}
