#include <bits/stdc++.h>
#define all(v) begin(v), end(v)
using namespace std;
vector<int> brute(vector<int> &a, int n, int k) {
vector<int> res = a;
for (int mask=0; mask<1<<n; mask++) {
if (__builtin_popcount(mask) != k) continue;
vector<int> inds, vals;
for (int i=0; i<n; i++) if (mask>>i&1) {
inds.push_back(i);
vals.push_back(a[i]);
}
sort(all(vals));
vector<int> nw = a;
for (int i=0; i<k; i++) {
nw[inds[i]] = vals[i];
}
res = min(res, nw);
};
return res;
};
void $() {
int n, k;
cin >> n >> k;
vector<int> a(n);
for (auto &u: a) cin >> u;
if (k>=3) {
auto ans = brute(x, n, k);
for (auto i: ans) cout << i << ' ';
cout << '\n';
return;
}
int mn = *min_element(all(a));
for (int i=0; i<n; i++) {
if (a[i] > mn) {
int j = -1;
for (int z=n-1; z>=0; z--) {
if (a[z]==mn) {
j = z;
break;
}
}
if (j>i) {
swap(a[i], a[j]);
if (k==3) {
bool f = false;
for (int z=i+1; z<j; z++) {
if (a[z] > a[j]) {
cout << "ZZZ" << z << '\n';
swap(a[z], a[j]);
f = true;
break;
};
};
if (!f) {
for (int z=j+1; z<n; z++) {
};
};
}
};
break;
};
};
for (auto i: a) cout << i << ' ';
cout << '\n';
}
int main() {
cin.tie(0)->sync_with_stdio(0);
$();
}