#include <iostream>
using namespace std;
int main() {
int number[255], result[255], result_length = 0;
char bit;
int i = 0, k, original_k;
cin.get(bit);
while (bit != ' ' && bit != '\n') {
number[i] = bit - '0';
++i;
cin.get(bit);
}
cin >> k;
if (i == k) {
cout << "0" << endl;
return 0;
}
original_k = k;
int the_min_index = 0, the_min_bit = number[0], last_min_index = -1;
while (1) {
for (int j = the_min_index, q = 0; q <= k; ++q, ++j) {
if (number[j] < the_min_bit) {
the_min_bit = number[j];
the_min_index = j;
}
}
k -= the_min_index - last_min_index - 1;
result[result_length] = the_min_bit;
result_length++;
last_min_index = the_min_index;
the_min_index++;
the_min_bit = number[the_min_index];
if (k == i - the_min_index || k == 0)break;
}
if (k == i - the_min_index) {
int invalid = 0;
while (result[invalid] == 0 && invalid < result_length)++invalid;
if (invalid == result_length)cout << "0" << endl;
else {
for (int j = invalid; j < result_length; ++j)cout << result[j];
cout << endl;
}
} else if (k == 0) {
int invalid = 0;
while (result[invalid] == 0 && invalid < result_length)++invalid;
if (invalid != result_length) {
for (int j = invalid; j < result_length; ++j)cout << result[j];
for (int j = the_min_index; j < i; ++j)cout << number[j];
cout << endl;
} else {
int invalid_ = the_min_index;
while (number[invalid_] == 0 && invalid_ < i)invalid_++;
if (invalid_ == i)cout << "0" << endl;
else {
for (int j = invalid_; j < i; ++j)cout << number[j];
cout << endl;
}
}
}
return 0;
}