#include <cstdlib>
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
#define MAX 1005
using namespace std;

int a[MAX], n, c;

struct d{
	int cnt, firstPos, val;
	d () : cnt(0), firstPos(-1) { }
};
bool cmp(d a, d b){
	if(a.cnt != b.cnt) return a.cnt > b.cnt;
	return a.firstPos < b.firstPos;
}

map<int, d> freqMap;
vector< d > v;
void input(){
	scanf("%d%d", &n, &c);
	for(int i = 0; i < n; ++i){
		scanf("%d", &a[i]);
		++(freqMap[a[i]].cnt);
		if(freqMap[a[i]].firstPos == -1) freqMap[a[i]].firstPos = i;
		freqMap[a[i]].val=a[i];
	}
	
}

void solve(){
	for( __typeof(freqMap.begin()) it = freqMap.begin(); it != freqMap.end(); ++it){
		v.push_back(it->second);
	}
	
	sort(v.begin(), v.end(), cmp);
	
}

void out(){
	for(int i = 0; i < v.size(); ++i){
		for(int j = 0; j < v[i].cnt; ++j){
			printf("%d ", v[i].val);
		}
	}
	printf("\n");
}

int main(){
	input();
	solve();
	out();
	scanf("\n");
	return 0;
}
