// lex.java
// Lexicography, MCPC 2014, Problem C
// Java solution by Andy Harrington

import java.util.*;
import java.io.*;

public class lex
{
   static int[] rep; //repetitions of each letter with unique letters sorted
   
   public static void main(String[] argsthrows Exception {
      String file = (args.length > 0? args[0"lex.in";
      Scanner in = new Scanner(new File(file));
      String s= in.next();
      while (!s.startsWith("#")) {
         long K = in.nextLong() 1;  // to index - since input counts from 1
         char[] sa = s.toCharArray();
         Arrays.sort(sa);
         rep = new int[sa.length];  // easiest - max size is length of string
         String uniqueStr = "";
         char prev = ' '// does not match first character
         for(char ch : sa// both find unique char and count repetitions
            if (ch != prev) {
               rep[uniqueStr.length()] 1;
               uniqueStr += ch;
               prev = ch;
            }
            else rep[uniqueStr.length()-1]++;
         System.out.println(solve(K, uniqueStr.toCharArray()));
         s = in.next();
      }
   }

   static long fac(long i) { // return i!
      long tot = 1;
      for ; i>1; i--)
         tot *= i;
      return tot;
   }

   static long perm(int tot) { //permutations of tot items with repeats rep
      long x = fac(tot);
      for (int r: rep)
         x /= fac(r);  // extra 0's ok: 0! = 1
      return x;
   }

   static String solve(long K, char[] let) { // let is unique char sorted 
      int n = rep.length, d = let.length; // repetitions of let[i] is rep[i]
      char[] sol = new char[n];
      for (int i = 0; i < n; i++)  //next position to choose
          for (int j = 0; j < d; j++// which letter to choose
             if (rep[j0) {
                rep[j]--; // attempt to use let[j]
                long dk = perm(n-i-1)// #  starting with sol[0..i-1], let[j] 
                if (dk > K) {  // can't skip current letter    
                    sol[i= let[j];  
                    break;
                }
                rep[j]++; // no, did not use let[j], 
                K -= dk;  // past let[j] and dK permutations of further chars
             }
      if (K > 0System.err.println("Residual K is " + K);  // judge check
      return new String(sol);
   }
}