#include <bits/stdc++.h>

#define rep(i,n) for(int i=0;i<(n);i++)

using namespace std;
using lint=long long;

int main(){
	int n;
	lint k; scanf("%d%lld",&n,&k);
	vector<int> a(n);
	rep(i,n) scanf("%d",&a[i]);

	vector<int> next(n);
	{
		vector<int> first(2e5+2,-1);
		rep(i,n) if(first[a[i]]==-1) first[a[i]]=i;

		vector<int> nearest(2e5+2,-1);
		for(int i=n-1;i>=0;i--){
			if(nearest[a[i]]==-1){
				next[i]=first[a[i]];
			}
			else{
				next[i]=nearest[a[i]];
			}
			nearest[a[i]]=i;
		}
	}

	int per=1;
	{
		int p=0;
		do{
			if(p>=next[p]) per++;
			p=(next[p]+1)%n;
		}while(p!=0);
	}

	if(k%per==0) return 0;

	k=(k-1)%per;

	int p=0;
	while(k>0){
		if(p>=next[p]) k--;
		p=(next[p]+1)%n;
	}

	// simulate
	vector<int> ans;
	vector<bool> used(2e5+2);
	for(;p<n;p++){
		if(!used[a[p]]){
			ans.emplace_back(a[p]);
			used[a[p]]=true;
		}
		else{
			while(1){
				int x=ans.back();
				ans.pop_back();
				used[x]=false;
				if(x==a[p]) break;
			}
		}
	}
	rep(i,ans.size()) printf("%d%c",ans[i],i+1<ans.size()?' ':'\n');

	return 0;
}
