import java.util.ArrayList;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine();
int k = sc.nextInt();
//记录n个数的阶层
int []nums = new int[n+1];
int c = 1;
//创建list用于输出数
ArrayList<Integer> list = new ArrayList<>();
for (int i = 1; i <= n; i++) {
c*=i;
nums[i] = c;
list.add(i);
}
if (k>nums[n]){
System.out.println(-1);
return;
}else{
if (n==1){
System.out.println(1);
return;
}else{
int count = 1;
while (true){
if (k%nums[n-count]==0){
int pos = k/nums[n-count];
System.out.print(list.get(pos-1));
list.remove(pos-1);
for (int i = list.size()-1;i>-1;i--) {
System.out.print(list.get(i));
}
break;
}else{
int pos = k/nums[n-count];
System.out.print(list.get(pos));
list.remove(pos);
k %= nums[n-count];
}
count++;
}
}
}
如有错误或者改进,希望各位大佬支招。