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.OutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.BufferedInputStream;
import java.io.InputStream;

/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 * @author Ganesh Bhambarkar
 */
public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        FastScanner in = new FastScanner(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        TaskA solver = new TaskA();
        solver.solve(1, in, out);
        out.close();
    }
}

class TaskA {
    public void solve(int testNumber, FastScanner in, PrintWriter out) {
        int n = in.nextInt();

        int a[] = new int[n];

        int ans = a[0] = in.nextInt();

        for (int i = 1; i < n; ++i) {
            ans = Euclid.gcd(ans, a[i] = in.nextInt());
        }

        for (int i = 0; i < n; ++i) {
            if (ans % a[i] == 0) {
                out.println(a[i]);
                return;
            }
        }

        out.println(-1);
    }
}

class FastScanner {
    private final BufferedInputStream in;

    public FastScanner(InputStream i) {
        in = new BufferedInputStream(i);
    }

    public int nextInt() {
        int c, sign = 1;
        int result = 0;
        try {
            while ((c = in.read()) < '0' && c > '9' && c != '-')
                ;
            if (c == '-') {
                sign = -1;
            } else if (c >= '0' && c <= '9') {
                result = c - '0';
            }
            c = in.read();
            while (c >= '0' && c <= '9') {
                result = 10 * result + (c - '0');
                c = in.read();
            }
        } catch (IOException e) {
        }
        return result * sign;
    }

    }

class Euclid {
    public static int gcd(int a, int b) {
        while (b > 0) {
            a = a % b;
            a ^= b;
            b ^= a;
            a ^= b;
        }
        return a;
    }

    }
