# include <cstdio>
# include <vector>
# include <algorithm>
# include <map>
using namespace std;

bool comp (const pair<long,pair<int,int> > &l,const pair<long,pair<int,int> > &r)
{
  	if(l.second.first>r.second.first)return true;
  	else if(l.second.first<r.second.first)return false;
  	return l.second.second<r.second.second;
};

map<long,pair<int,int> > m;
map<long,pair<int,int> >::iterator mit;
vector<pair<long,pair<int,int> > > v;
vector<pair<long,pair<int,int> > >::iterator it;

int main()
{
	int n,i,j,k;
	long c,x,*px=&x;

	scanf("%d%ld",&n,&c);

	for(i=0;i<n;i++)
	{
		scanf("%ld",px);

		if(m.find(x)!=m.end())
		{
			m[x].first++;
		}
		else m.insert(pair<long,pair<int,int> >(x,pair<int,int>(1,i)));
	}

	for(i=0,mit=m.begin();mit!=m.end();mit++,i++)
	{
		v.push_back((*mit));
	}

	sort(v.begin(),v.end(),comp);

	for(it=v.begin();it!=v.end();it++)
	{
		k=(*it).second.first;
		x=(*it).first;
		for(j=0;j<k;j++)printf("%ld ",x);
	}
	printf("\n");
	return 0;
	}
