#include<cstdio>
#include<algorithm>
using namespace std;
int n;
int w[401000], P[401000];
long long K, Nxt[201000][41];
int U[401000], C[401000];
int main() {
	int i, j;
	scanf("%d%lld", &n, &K);
	for (i = 1; i <= n; i++) {
		scanf("%d", &w[i]);
		w[n + i] = w[i];
	}
	for (i = n + n; i >= 1; i--) {
		if (i <= n) {
			Nxt[i - 1][0] = P[w[i]] - (i - 1);
		}
		P[w[i]] = i;
	}
	for (i = 0; i < 40; i++) {
		for (j = 0; j < n; j++) {
			Nxt[j][i+1] = Nxt[j][i] + Nxt[(j+Nxt[j][i])%n][i];
		}
	}
	long long s = 0;
	int cur = 0;
	for (i = 40; i >= 0; i--) {
		while (s + Nxt[cur][i] <= n*K) {
			s += Nxt[cur][i];
			cur = s % n;
		}
	}
	if (s == n * K) {
		return 0;
	}
	int cnt = 0;
	for (long long ii = s; ii < n * K; ii++) {
		int t = w[ii % n + 1];
		if (C[t]) {
			while (C[t]) {
				cnt--;
				C[U[cnt]]--;
			}
		}
		else {
			U[cnt++] = t;
			C[t]++;
		}
	}
	for (i = 0; i < cnt; i++)printf("%d ", U[i]);
}