#include <iostream>
#include <string>
std::string longest_k_substring(std::string s, int k) {
int kk, start = 0, end, slen, maxlen = 0, saveStart;
int count[256] = {0};
slen = s.size();
if (k == 0) return "";
// find the longest prefix that contains <= k different characters
for (end = 0, kk = 0; end < slen; ++end) {
char c = s[end];
if (++count[c] == 1) // new character
if (++kk > k) break;
}
while (true) {
if (end - start > maxlen) {
maxlen = end - start;
saveStart = start;
}
if (end == slen) return s.substr(saveStart, maxlen);
// increase start until s[start -> end] contains exactly k different characters
while (--count[s[start++]]);
// increase end until we reach a new character not currently in s[start -> end]
while (++end < slen && ++count[s[end]] > 1);
}
}
int main() {
std::string s;
int k;
std::cin >> s >> k;
std::cout << longest_k_substring(s, k);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKc3RkOjpzdHJpbmcgbG9uZ2VzdF9rX3N1YnN0cmluZyhzdGQ6OnN0cmluZyBzLCBpbnQgaykgewoJaW50IGtrLCBzdGFydCA9IDAsIGVuZCwgc2xlbiwgbWF4bGVuID0gMCwgc2F2ZVN0YXJ0OwoJaW50IGNvdW50WzI1Nl0gPSB7MH07CglzbGVuID0gcy5zaXplKCk7CglpZiAoayA9PSAwKSByZXR1cm4gIiI7CgkKCS8vIGZpbmQgdGhlIGxvbmdlc3QgcHJlZml4IHRoYXQgY29udGFpbnMgPD0gayBkaWZmZXJlbnQgY2hhcmFjdGVycwoJZm9yIChlbmQgPSAwLCBrayA9IDA7IGVuZCA8IHNsZW47ICsrZW5kKSB7CgkJY2hhciBjID0gc1tlbmRdOwoJCWlmICgrK2NvdW50W2NdID09IDEpIAkvLyBuZXcgY2hhcmFjdGVyCgkJICBpZiAoKytrayA+IGspIGJyZWFrOwoJfQoJCgl3aGlsZSAodHJ1ZSkgewoJCWlmIChlbmQgLSBzdGFydCA+IG1heGxlbikgewoJCQltYXhsZW4gPSBlbmQgLSBzdGFydDsKCQkJc2F2ZVN0YXJ0ID0gc3RhcnQ7CgkJfQoJCWlmIChlbmQgPT0gc2xlbikgcmV0dXJuIHMuc3Vic3RyKHNhdmVTdGFydCwgbWF4bGVuKTsKCQoJCS8vIGluY3JlYXNlIHN0YXJ0IHVudGlsIHNbc3RhcnQgLT4gZW5kXSBjb250YWlucyBleGFjdGx5IGsgZGlmZmVyZW50IGNoYXJhY3RlcnMKCQl3aGlsZSAoLS1jb3VudFtzW3N0YXJ0KytdXSk7CgkJLy8gaW5jcmVhc2UgZW5kIHVudGlsIHdlIHJlYWNoIGEgbmV3IGNoYXJhY3RlciBub3QgY3VycmVudGx5IGluIHNbc3RhcnQgLT4gZW5kXQoJCXdoaWxlICgrK2VuZCA8IHNsZW4gJiYgKytjb3VudFtzW2VuZF1dID4gMSk7Cgl9Cn0KCmludCBtYWluKCkgewoJc3RkOjpzdHJpbmcgczsKCWludCBrOwoKCXN0ZDo6Y2luID4+IHMgPj4gazsKCXN0ZDo6Y291dCA8PCBsb25nZXN0X2tfc3Vic3RyaW5nKHMsIGspOwoKCXJldHVybiAwOwp9