#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

struct data
{
	long long GT;
	int sl;
	int bd;
};

int cmp (data a, data b)
{
	if (a.sl<b.sl) return 0;
	else if (a.sl==b.sl)
	{
		if (a.bd>b.bd) return 0;
	}
	return 1;
}

int main ()
{
	int N;
	long long C;
	cin>>N>>C;
	struct vector <data> V;
	struct data tg;
	for (int i=1; i<=N; i++)
	{
		cin>>tg.GT;
		int kt=0;
		for (int j=0; j<V.size(); j++)
		{
			if (V[j].GT==tg.GT)
			{
				kt=1;
				V[j].sl++;
				break;
			}
		}
		if (kt==0)
		{
			tg.sl=1;
			tg.bd=i;
			V.push_back(tg);
		}
	}
	sort (V.begin(), V.end(), cmp);
	for (int i=0; i<V.size(); i++)
	{
		for (int j=0; j<V[i].sl; j++)
		{
			cout<<V[i].GT<<" ";
		}
	}
	return 0;
}