2910
#include <unordered_map>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(pair<int, pair<int, int>> a, pair<int, pair<int, int>> b) {
if (a.second.first == b.second.first) {
return a.second.second < b.second.second;
}
else {
return a.second.first > b.second.first;
}
}
int main() {
int n, c;
unordered_map<int, pair<int, int>> m;
cin >> n >> c;
for (int i = 0; i < n; i++) {
int num;
cin >> num;
m[num].first++;
if (m[num].second == 0) {
m[num].second = i + 1;
}
}
vector<pair<int, pair<int, int>>> v(m.begin(), m.end());
sort(v.begin(), v.end(), compare);
for (int i = 0; i < v.size(); i++) {
int num = v[i].first;
for (int j = 0; j < v[i].second.first; j++) {
cout << num << " ";
}
}
}