There are n block towers in a row, where tower i has a height of a_i. You're part of a building crew, and you want to make the buildings look as nice as possible. In a single day, you can perform the following operation:

  * Choose two indices i and j (1 ≤ i, j ≤ n; i ≠ j), and move a block from tower i to tower j. This essentially decreases a_i by 1 and increases a_j by 1. 



You think the ugliness of the buildings is the height difference between the tallest and shortest buildings. Formally, the ugliness is defined as max(a)-min(a). 

What's the minimum possible ugliness you can achieve, after any number of days?

Input

The first line contains one integer t (1 ≤ t ≤ 1000) — the number of test cases. Then t cases follow.

The first line of each test case contains one integer n (2 ≤ n ≤ 100) — the number of buildings.

The second line of each test case contains n space separated integers a_1, a_2, …, a_n (1 ≤ a_i ≤ 10^7) — the heights of the buildings.

Output

For each test case, output a single integer — the minimum possible ugliness of the buildings.

Example

Input


3
3
10 10 10
4
3 2 1 2
5
1 2 3 1 5


Output


0
0
1

Note

In the first test case, the ugliness is already 0.

In the second test case, you should do one operation, with i = 1 and j = 3. The new heights will now be [2, 2, 2, 2], with an ugliness of 0.

In the third test case, you may do three operations: 

  1. with i = 3 and j = 1. The new array will now be [2, 2, 2, 1, 5], 
  2. with i = 5 and j = 4. The new array will now be [2, 2, 2, 2, 4], 
  3. with i = 5 and j = 3. The new array will now be [2, 2, 3, 2, 3]. 

The resulting ugliness is 1. It can be proven that this is the minimum possible ugliness for this test.
//package com.company;

import java.io.FileInputStream;
import java.io.InputStream;
import java.io.StringReader;
import java.util.*;




public class Main {

    public static class Dsu{
        int[] parent;
        Set<Integer>[] rest;
        Set<Integer>[] restrictions;
        Dsu(int n, int[][] restrictions)
        {
            parent = new int[n];
            rest = new Set[n];
            for(int i =0; i < n; i ++)
                parent[i]=i;
            for(int i =0; i < n; i++)
            {
                rest[i] = new HashSet<>();
                rest[i].add(i);
            }
            this.restrictions = new Set[n];
            for(int i =0; i < n; i++)
            {
                this.restrictions[i] = new HashSet<>();

            }
            for(int[] restriction : restrictions)
            {
                this.restrictions[restriction[0]].add(restriction[1]);
                this.restrictions[restriction[1]].add(restriction[0]);
            }
        }
        int find(int son)
        {
            if(parent[son]==son) return son;
            return find(parent[son]);
        }
        boolean union(int p, int q)
        {
            int pp = find(p);
            int pq = find(q);
            if(pp==pq) return true;
            if(valid(rest[pp],restrictions[pq]))
            {
                rest[pp].addAll(rest[pq]);
                parent[pq] = pp;
                return true;
            }
            return false;
        }
        boolean valid(Set<Integer> s1, Set<Integer> s2)
        {
            for(Integer i : s1)
            {
                if(s2.contains(i)) return false;
                //System.out.println(i);
            }

            return true;
        }
    }
    public static boolean[] friendRequests(int n, int[][] restrictions, int[][] requests) {
        boolean[] ans = new boolean[requests.length];
        Dsu dsu = new Dsu(n,restrictions);
        int i =0;
        for(int[] req : requests)
        {
            ans[i++] = dsu.union(req[0],req[1]);
        }


        return ans;
    }

    public static void main(String[] args) {
        // write your code here
        Scanner scanner = new Scanner(System.in);
        int t = scanner.nextInt();
        while(t-->0)
        {



            int l= scanner.nextInt();
            int r = scanner.nextInt();
            int[] a = new int[32];
            for(int i =l; i <= r;i++)
            {
                for(int j=0; j<32;j++)
                {
                    if ((i & (1 << j)) == 0)
                        a[j]++;
                }
            }
            int min = Integer.MAX_VALUE;
            for(int i =0;i<32;i++)
                min = Math.min(min,a[i]);


            System.out.println(min);

        }


    }


}