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:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {



    public static void main(String[] args) throws IOException {
BufferedReader a=new BufferedReader(new InputStreamReader(System.in));
String s=a.readLine();
String Arr[]=s.split(" ");
long n=Long.parseLong(Arr[0]);
int k=Integer.parseInt(Arr[1]);
long Array1[]=new long [10000000];
long Array2[]=new long [10000000];
int start=0;
int end=Array2.length-1;
 long x=2;
 int count=0;
        for (int i =1; i <=n/2+1; i++) {
           if(i==x || i>x){
              break;
             }
                 x=(long)(n / i);
                 if(i==x){
                     if(n%i==0){
                 Array1[start]=i;
                 count++;}
                  break;       }
               if(n%i==0){
                Array1[start]=i;
                Array2[end]=x;
                count=count+2;
                    if(end<=start)
                   break;
                    start++;
                    end--;
            }
           
            }
 
long Array3[]=new long [count];
start=0;
end=Array2.length-1;
int j=Array3.length-1;
        for (int i= 0; i<Array3.length; i++) {
            if(i==j){
             if(end<0 && start>Array1.length-1)
                 break;
              if(Array1[start]!=0)
                Array3[i]=Array1[start];
            if(Array2[end]!=0)
                Array3[j]=Array2[end];
             break;}
if(j<i)
    break;
            if(Array1[start]!=0)
                Array3[i]=Array1[start];
            if(Array2[end]!=0){
                Array3[j]=Array2[end];
            j--;}
           
                   start++;
                    end--;
        }
int u=0;

if(k<=Array3.length)
        System.out.println(Array3[k-1]);
else
            System.out.println(-1);
        }

    }