#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;
void add(int a);
void isp();
int br(int a);

typedef pair<int,int> par;
vector<par> V;
int N[1020];
int n;

bool cmp(int a,int b)
{
     return V[br(a)].second>V[br(b)].second;
}

int main()
{

    int c;
    cin>>n>>c;
    c = 0;
    for (int i = 0; i<n; ++i)
        {
        int j;
        cin>>j;
        N[i] = j;
        add(j); 
        }
    stable_sort(N, N+n, cmp);
    for (int i = 0; i<n;i++)
    {
    int el = br(N[i]);
    while(V[el].second>0)
       {
       cout<<V[el].first;
       c++;
       if (c!=n) cout<<" ";
       V[el].second--;                  
       }   
    
    }
    //isp();
}

void add(int j)
{
for (int i=0; i<V.size();++i)
if (V[i].first==j) {V[i].second++; return;}
V.push_back(par(j,1));     
}

void isp()
{
for (int i = 0; i<n; i++)
printf("%ll\n", N[i]);
}

int br(int a)
{
    for (int i = 0; i<V.size(); i++)
    if (V[i].first==a) return i;
}
