import java.util.*;
public class Power {
    static long power(int a,int b){
        if(b==0)
            return 1;
        long pow=power(a,b/2);
        if(b%2!=0){
            return pow*pow*a;
        }
        else{
            return pow*pow;
        }
    }
    static long gcd(long a,long b){
        if(b==0)
            return a;
        else 
            return gcd(b,a%b);
    }
    static long lcm(long a,long b){
        return (a*b)/gcd(a,b);
    }
    static List<Integer> primes(int n){
            List<Integer> list=new ArrayList<Integer>();
            boolean[] prime=new boolean[n+1];
            Arrays.fill(prime,true);
            prime[0]=false;
            prime[1]=false;
            int sqrt=(int)Math.sqrt(n);
            for(int i=2;i<=sqrt;i++){
                if(prime[i]){
                    for(int j=i*i;j<=n;j=j+i){
                        prime[j]=false;
                    }
                }
            }
            for(int i=0;i<prime.length;i++){
                if(prime[i])
                    list.add(i);
            }
            return list;
    }
    static long catalan(long n){
            long result=0;
            if(n<=1)
                return 1;
            for(long i=0;i<n;i++)
                result+=catalan(i)*catalan(n-i-1);
            return result;
    }
    static long totient(long n){
        long res=0;
        for(long i=1;i<=n;i++){
            if(gcd(i,n)==1)
                res++;
        }
        return res;
        
    }
   /* static double ternarysearch(long low,long high,long[] a,long[] b,long result){
        int t=500;
        while(t-->0 ){
            long m1=low+(high-low)/3;
            long m2=high-(high-low)/3;
            long v1=ft(m1,a,b);
           long v2=ft(m2,a,b);
            result=Math.min(result,Math.min(v1,v2));
            if(v1<result)
                result=v1;
            if(v2<result)
                result=v2;
            if(v1<v2){
                high=m2;
            }
            else
                low=m1;
        }
            for(long i=low;i<=high;i++){
              //  if(ft(i,a,b)<result)
                //    result=ft(i,a,b);
            }
        return result;
    }*/
    static int countone(Integer[] one,int low,int high){
        if(low<=high){
            int mid=(low+high)/2;
            if((mid==high || one[mid+1]==0) && one[mid]==1)
                return mid+1;
            if(one[mid]==1){
                return countone(one,mid+1,high);
            }
            else{
                return countone(one,low,mid-1);
            }
        
        }
        return 0;

    }
    static boolean check(int[] arr){
        for(int i=0;i<arr.length;i++){
            if(arr[i]!=0){
                return false;
            }
        }
        return true;
    }
    static boolean convert(int a,int b){
       // System.out.println(a);
        if(a==b){
            return true;
        }
        if(a>b || a<=1){
            return false;
        }

        else{
            if(a%2==0 && a!=2){
                return convert((3*a)/2,b) ||  convert(a-1,b);
            }
            else{
                return convert(a-1,b);
            }
        }
        
    }
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        int test=input.nextInt();
        while(test-->0){
            int n=input.nextInt();
            int[] arr=new int[n];
            for(int i=0;i<n;i++)arr[i]=input.nextInt();
            if(n==1){
                System.out.println("-1");
            }
            else{
            HashMap<Integer,List<Integer>> map=new HashMap<Integer,List<Integer>>();
            for(int i=0;i<n;i++){
                if(map.containsKey(arr[i])){
                    List<Integer> l=map.get(arr[i]);
                    l.add(i);
                    map.put(arr[i],l);
                }
                else{
                    List<Integer> l=new ArrayList<Integer>();
                    l.add(i);
                    map.put(arr[i],l);
                }
            }
            HashSet<Integer> set=new HashSet<Integer>();
            int result=Integer.MAX_VALUE;
            for(int i=0;i<n;i++){
                if(!set.contains(arr[i])){
                    set.add(arr[i]);
                    List<Integer> ll=map.get(arr[i]);
                  // System.out.println(ll);
                    if(ll.size()>1){
                        for(int j=0;j<ll.size()-1;j++){
                            result=Math.min(result,ll.get(j+1)-ll.get(j));
                        }
                    }
                }
            }
            if(result==Integer.MAX_VALUE){
                System.out.println("-1");
            }
            else{
                System.out.println(result+1);
            }
        }
    }
        }
}