Ksusha is a beginner coder. Today she starts studying arrays. She has array a1, a2, ..., an, consisting of n positive integers.

Her university teacher gave her a task. Find such number in the array, that all array elements are divisible by it. Help her and find the number!

Input

The first line contains integer n (1 ≤ n ≤ 105), showing how many numbers the array has. The next line contains integers a1, a2, ..., an (1 ≤ ai ≤ 109) — the array elements.

Output

Print a single integer — the number from the array, such that all array elements are divisible by it. If such number doesn't exist, print -1.

If there are multiple answers, you are allowed to print any of them.

Examples

Input

3
2 2 4


Output

2


Input

5
2 1 3 1 6


Output

1


Input

3
2 3 5


Output

-1
import java.io.BufferedReader;
import java.io.*;
import java.util.Arrays;
import java.util.HashMap;
import java.util.StringTokenizer;
import java.util.Vector;


/**
 * Author: Luis Manuel Díaz Barón
 * Problem:
 * Online Judge:
 * Idea:
 * Fecha: 20/02/2013
 */

public class Main {

    static MyScanner sc;
    static MyWriter pw;
    static String filePath="/media/luismo/Trabajo/lmo.in";
    public static void main(String[] args) throws IOException {
        sc = new MyScanner(System.in);
        //sc = new MyScanner(new FileReader(filePath));
        pw = new MyWriter(System.out);

        //while(sc.canRead())
            SolveSingleProblem();

        pw.close();
    }

    public static void SolveSingleProblem() throws IOException{

        int n = sc.nextInt();
        int [] arr = new int[n];
        for(int i=0;i<n;i++){
            arr[i] = sc.nextInt();
        }




        Arrays.sort(arr);



        boolean flag = true;
        for(int i=1;i<n;i++){
            if(arr[i]%arr[0]!=0){
                arr[0]=-1;
                break;
            }

        }

        pw.println(arr[0]);

    }

    static long abs(long a){
        if(a<0)
            a*=-1;
        return a;
    }

}



class Cow implements Comparable<Cow> {
    public int threshold,coordinate;
    public Cow(int threshold, int coordinate){
        this.threshold = threshold;
        this.coordinate = coordinate;
    }

    @Override
    public int compareTo(Cow c){

        if(c.threshold == this.threshold)
            return this.coordinate - c.coordinate;

        return this.threshold - c.threshold;
    }

    @Override
    public String toString(){
        return "["+this.threshold+","+this.coordinate+"]";
    }
    
}


class MyScanner{
    BufferedReader br;
    StringTokenizer stk;
    public MyScanner(InputStream stream){
        this.br = new BufferedReader(new InputStreamReader(stream),72357);
        this.stk = new StringTokenizer("");
    }
    public MyScanner(FileReader fr){
        this.br = new BufferedReader(fr);
        this.stk = new StringTokenizer("");
    }
    public String next() throws IOException {
        while(!stk.hasMoreElements()){
            String line = br.readLine();
            if(line == null)
                return null;
            stk = new StringTokenizer(line);
        }
        return stk.nextToken();
    }
    public int nextInt()throws IOException{
        return Integer.parseInt(next());
    }
    public boolean canRead() throws IOException{
        return br.ready();
    }
}

class MyWriter{
    PrintWriter pw;
    public MyWriter(OutputStream out){
        this.pw = new PrintWriter(out);
    }
    public void print(Object obj){
        pw.print(obj.toString());
    }
    public void println(Object obj){
        pw.println(obj.toString());
    }
    public void printArr(int [] objects){
        for(int i =0;i<objects.length;i++){
            if(i!=0)
                print(" "+objects[i]);
            else print(objects[i]);
        }
        println("");
    }

    public void close() {
        pw.close();
    }
}