#include <iostream>
#include <string>

using namespace std;

int  p[1000];
int pp[1000];

int Max(){
	int max=0;
	for(int i=0; i<1000; i++){
		if(p[i]>0){
			max=p[i];
			p[i]=0;
		}
	}
	return max;
}

int main(int argc, char** argv){

	int n,c;
	scanf("%d %d", &n, &c);
	int br[n];

	for(int i=0; i<n; i++)
		cin >> br[i];

	// Prebroji:
	for(int i=0; i<n; i++){
		p[br[i]]++;
	}

	cout << "----------"<<endl;
	for(int i=1; i<=c; i++)
		if(p[i]>0)
			cout << i <<".: "<<p[i]<<endl;
	cout << endl;

	// Sort, max!
	for(int i=1; i<=c;i++){
		pp[i] = Max();
	}
	cout << "MAX!!!!!"<<endl;
	for(int i=0; i<=10; i++){
		cout <<"p["<<i<<"]  = "<<p[i]<<endl;
		cout <<"pp["<<i<<"] = "<<pp[i]<<endl;
	}



	// Ispis
	for( int i=(c); i>=(0); i-- )
		for( int j=0; j<p[i]; j++ )
			cout <<i<<" ";

	for( int i=1; i<=c; i++ ){
		if(pp[i]==pp[i+1]) cout << i;
		//else
	}


	//while(mm = maxB(c)[0])
		//cout << "mm: "<<mm<<endl;

	cout << endl;

	return 0;
}
