Problem: You are given two integers n and k. Find k-th smallest divisor of n, or report that it doesn't exist.

Divisor of n is any such natural number, that n can be divided by it without remainder.

Input

The first line contains two integers n and k (1 ≤ n ≤ 1015, 1 ≤ k ≤ 109).

Output

If n has less than k divisors, output -1.

Otherwise, output the k-th smallest divisor of n.

Examples

Input

4 2


Output

2


Input

5 3


Output

-1


Input

12 5


Output

6

Note

In the first example, number 4 has three divisors: 1, 2 and 4. The second one is 2.

In the second example, number 5 has only two divisors: 1 and 5. The third divisor doesn't exist, so the answer is -1.

Solution (in JAVA):

Solution:
function main() {
    var data = readline().split(' ').map(Number);
    var n = data[0];
    var k= data[1];
    
    var endDivisors = [];
    var startDivisors = [];
    var num = n;
    var square_root = Math.floor(Math.sqrt(num)) + 1;
    for (var i = 1; i < square_root; i++) {
        if (num % i == 0&&i*i!=num){
            startDivisors.push(i);
            endDivisors.push(num/i)
        }
        if (num % i == 0&&i*i==num){
            startDivisors.push(i)
        }
    }
    var res = -1;
    if(startDivisors[k-1]){
        res = startDivisors[k-1];
    } else if (endDivisors[endDivisors.length - (k-startDivisors.length) ]){
        res = endDivisors[endDivisors.length - (k-startDivisors.length) ]
    }
    print(res);
}


main()