import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
solution(in);
}
}
/**
* 模拟法: 字典树
* @param in
*/
private static void solution(Scanner in){
long n = in.nextLong();
long k = in.nextLong();
long result = findKthNumber(n, k);
System.out.println(result);
}
/**
* 查找第K个数
* @param n
* @param k
* @return
*/
private static long findKthNumber(long n, long k){
// 从根节点下面的第一个结点1开始遍历
long curr = 1;
// 从1开始往后按字典序从小到大走k-1步到达的就是 字典序的第K小数字
k--;
while(k > 0){
// 得到以当前结点为根的所有子树节点数目
long count = countChildNodes(n, curr);
// 如果k大于等于当前根节点下所有子树结点的数目, 就向右侧节点走(->2->3->4->5->6->7->8->9) 字典序上升count位
if(count <= k){
// 减去已经遍历的个数
k -= count;
// 根节点右移
curr++;
}
// 如果k小于当前根节点下所有子树结点的数目, 说明结果就在当前根节点的子树结点中
else{
// 减去根节点的数量1
k--;
// 将根结点移动到下一层(每一层10个结点)
curr *= 10;
}
}
// 最终k=0时 得到结果
return curr;
}
/**
* 计算以curr为根的所有子树节点数目,所有节点的值必须<=n
* @param n
* @param curr
* @return
*/
private static long countChildNodes(long n, long curr){
long count = 0;
long first = curr;
long last = curr;
while (first <= n) {
// 每一层的数目
count += Math.min(last, n) - first + 1;
first = first * 10;
last = last * 10 + 9;
}
return count;
}
}