#include <iostream>

#include <cstdio>
#include <cstring>
#include <cmath>

using namespace std;

int main () {
    int n, k, i, j=1, maks, pozicija, broj;
    scanf("%d %d", &n, &k);
    int s[n], br[k+1][2];
    memset(br, 0, sizeof(br));
    for (i=0; i<n; i++) {
        scanf("%d", &s[i]);
        br[s[i]][0]++;
        if (!br[s[i]][1]) {br[s[i]][1] = j; j++;}
    }
    j--;
    while (j) {
          j--;
          maks = 0; pozicija = 0;
          for (i=0; i<=k; i++) {
              if (br[i][0] > maks and br[i][0]) {maks = br[i][0]; pozicija = br[i][1]; broj = i;}
              if (br[i][0] == maks and br[i][0]) {
                 if (br[i][1] < pozicija) {
                    broj = i;
                    pozicija = br[i][1];
                 }
              }
          }
          for (i=0; i<maks; i++) printf("%d ", broj);
          br[broj][0] = 0; br[broj][1] = 0;
    }
    //system("pause");
    return 0;
}
