#pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #ifdef local #include #else #define dump(...) void(0); #endif #include #include #include namespace man { } int main() { std::cin.tie(nullptr) -> sync_with_stdio(false); std::string n; int64_t k, c = 0; std::cin >> n >> k; const int m = n.size(); std::valarray v(m); for(const auto &i: std::views::iota(0, m)) { v[i] = n[i] - '0'; } const auto vtoi = [](const std::valarray &v) -> int64_t { int64_t x = 0; for(const auto &e: v) { x += e; x *= 10; } x /= 10; return x; }; const auto rec = [&](const auto &f, const int d) -> void { if(d == m) { if(++c == k) { std::cout << vtoi(v) << '\n'; } return; } for(const auto &i: std::views::iota(0, v[d] + 1)) { v[d] = i; f(f, d + 1); } }; rec(rec, 0); }