#include <cstdio>
#include <vector>
#define MAXN 1001
using namespace std;

int N,C,A[MAXN],F[MAXN];
int p,SIZE,Max=-1,MinP=-1;
bool ima=false;
vector <int> V;

int main(void){
      scanf("%d %d",&N,&C);
      
      for(int i=0; i<N; i++){
         scanf("%d",&A[i]);
         for(int j=0; j<(int)V.size(); j++){
           if (A[i]==V[j]) ima=true;        
         }
         if(ima==false) V.push_back(A[i]);
         ima=false;
      }
    
      SIZE=(int)V.size();
      for(int i=0; i<N; i++){
        for(int j=0; j<SIZE; j++){
            if (A[i]==V[j]) ++F[j];        
        }         
      }
      
      for(int i=0; i<SIZE; i++){
        for(int j=0; j<SIZE; j++)
            if(F[j]>Max && F[j]!=0){ 
               MinP=j;  Max=F[j];          
            }
        
        while(F[MinP]>0){
          printf("%d ",V[MinP]);
          --F[MinP];                
        }
          Max=-1; MinP=-1;
      }
    
   printf("\n");
   return 0;    
}
