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 PYTHON3):

Solution:
import math,bisect
if __name__ == '__main__':

    a, b = input().split()
    a1,a2= int(a),int(b)
    # v = int(a1**(1/2))
    # arr= []
    # i = 2
    # while i <= v:
    #     if (a1 % i==0):
    #         bisect.insort(arr,i)
    #         if (i != (v / i)):
    #             bisect.insort(arr, int(v / i))
    #
    #     i += 1
    # # bisect.insort(arr,1)
    # print(arr)
    # if (len(arr) < a2):
    #     print(-1, end='')
    # else:
    #     print(arr[a2 - 1], end='')
    arr = []
    arr1 = []

    i = 1
    while i <= math.sqrt(a1) + 1:

        if (a1 % i == 0):

            # If divisors are equal, print only one
            if (a1 / i == i):
                bisect.insort(arr,i)
            else:
                # Otherwise print both
                bisect.insort(arr, i)
                bisect.insort(arr1,int(a1 / i))
        i = i + 1

    arr.extend(arr1)
    arr = list(set(arr))
    arr.sort()


    if(len(arr)<a2): print(-1,end='')
    else: print(arr[a2-1],end='')