import java.util.*;

public class Main{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        int k = sc.nextInt();
        int n = input.length();
        List<String> list = new ArrayList<String>();
        Map<String, Integer> map = new HashMap<String, Integer>();
        int index = 0;

        for(int i = 0; i < n; i++){
            for(int j = i + 1; j <= n && (j-i)<= k; j++){
                if(!map.containsKey(input.substring(i, j))){
                    map.put(input.substring(i, j), index);
                    list.add(input.substring(i, j));
                    index++;
                }
            }
        }
        Collections.sort(list);

        System.out.println(list.get(k-1));
    }
}

注意考虑了两点:
1.子字符串添加的时候可能重复,所以使用了一个hashmap来确保无重。
2.第k小子串所以所有参加比较的子串长度不大于k。

完成以上两点后用sort()就ok了。