#include <bits/stdc++.h>
#define ll long long int
#define ld long double
#define nl "\n"
#define ull unsigned long long
#define rv return void
#define str string
#define all(x) x.begin(), x.end()
#define allr(x) x.rbegin(), x.rend()
#define vec vector
#define fixed(n) fixed << setprecision(n)
#define Moageza ios::sync_with_stdio(false);cout.tie(NULL);cin.tie(NULL);
using namespace std;
// const ll mod = 1e9+7;
//////////////////////////////////////////////////////
void solve(){
int n,k;cin>>n>>k;
vec<int>v(n),freq(int(2e5+5),0),v2;
set<int>s;
for(int i=0;i<n;i++){
cin>>v[i],freq[v[i]]++;
if(freq[v[i]]==1)v2.push_back(v[i]);
}
int l=1,r=n,ch=0;
while(l<=r){
int mid=(l+r)/2,sum=0;
for(int i=0;i<v2.size();i++)sum+=freq[v2[i]]/mid;
if(sum>=k)l=mid+1,ch=mid;
else r=mid-1;
}
vec<int>ans;
for(int i=0;i<v2.size();i++){
for(int j=0;j<freq[v2[i]]/ch;j++)ans.push_back(v2[i]);
}
for(int i=0;i<k;i++)cout<<ans[i]<<" ";
}
signed main()
{
Moageza
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);
#endif
int t = 1;
// cin >> t;
while (t--) {
solve();
cout << nl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nIGludAojZGVmaW5lIGxkIGxvbmcgZG91YmxlCiNkZWZpbmUgbmwgIlxuIgojZGVmaW5lIHVsbCB1bnNpZ25lZCBsb25nIGxvbmcKI2RlZmluZSBydiByZXR1cm4gdm9pZAojZGVmaW5lIHN0ciBzdHJpbmcKI2RlZmluZSBhbGwoeCkgeC5iZWdpbigpLCB4LmVuZCgpCiNkZWZpbmUgYWxscih4KSB4LnJiZWdpbigpLCB4LnJlbmQoKQojZGVmaW5lIHZlYyB2ZWN0b3IKI2RlZmluZSBmaXhlZChuKSBmaXhlZCA8PCBzZXRwcmVjaXNpb24obikKI2RlZmluZSBNb2FnZXphIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTtjb3V0LnRpZShOVUxMKTtjaW4udGllKE5VTEwpOwp1c2luZyBuYW1lc3BhY2Ugc3RkOwovLyBjb25zdCBsbCBtb2QgPSAxZTkrNzsKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCnZvaWQgc29sdmUoKXsKICAgICBpbnQgbixrO2Npbj4+bj4+azsKICAgICB2ZWM8aW50PnYobiksZnJlcShpbnQoMmU1KzUpLDApLHYyOwogICAgIHNldDxpbnQ+czsKICAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKICAgICAgICBjaW4+PnZbaV0sZnJlcVt2W2ldXSsrOwogICAgICAgIGlmKGZyZXFbdltpXV09PTEpdjIucHVzaF9iYWNrKHZbaV0pOwogICAgIH0KICAgICBpbnQgbD0xLHI9bixjaD0wOwogICAgIHdoaWxlKGw8PXIpewogICAgICAgIGludCBtaWQ9KGwrcikvMixzdW09MDsKICAgICAgICBmb3IoaW50IGk9MDtpPHYyLnNpemUoKTtpKyspc3VtKz1mcmVxW3YyW2ldXS9taWQ7CiAgICAgICAgaWYoc3VtPj1rKWw9bWlkKzEsY2g9bWlkOwogICAgICAgIGVsc2Ugcj1taWQtMTsKICAgICB9CiAgICAgdmVjPGludD5hbnM7CiAgICAgZm9yKGludCBpPTA7aTx2Mi5zaXplKCk7aSsrKXsKICAgICAgICBmb3IoaW50IGo9MDtqPGZyZXFbdjJbaV1dL2NoO2orKylhbnMucHVzaF9iYWNrKHYyW2ldKTsKICAgICB9CiAgICAgZm9yKGludCBpPTA7aTxrO2krKyljb3V0PDxhbnNbaV08PCIgIjsKfQpzaWduZWQgbWFpbigpCnsKICAgTW9hZ2V6YQogICAgI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgICAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCAiciIsIHN0ZGluKTtmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwogICAgI2VuZGlmCiAgICBpbnQgdCA9IDE7CiAgICAvLyAgY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgc29sdmUoKTsKICAgICAgICBjb3V0IDw8IG5sOwogICAgfQogICAgcmV0dXJuIDA7Cn0=