#include using namespace std; constexpr int inf = 1073741823; constexpr long long linf = 0xfffffffffffffff; using ll = long long; using ld = long double; int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); string n; cin >> n; ll k; cin >> k; map memo; auto calc = [&](auto calc, int pos) -> ll { if(memo.find(pos) != memo.end()) return memo[pos]; if(pos == n.size()) return memo[pos] = 1; return memo[pos] = (n[pos] - '0' + 1) * calc(calc, pos + 1); }; ll ans = 0; int pos = 0; while(pos < n.size()) { for(int d = 0; d <= n[pos] - '0'; d++) { ll cnt = calc(calc, pos + 1); if(k <= cnt) { ans *= 10; ans += d; break; } k -= cnt; } pos += 1; } cout << ans << endl; }