Problem:
Score : 700 points

Problem Statement

We have a sequence of N \times K integers: X=(X_0,X_1,\cdots,X_{N \times K-1}).
Its elements are represented by another sequence of N integers: A=(A_0,A_1,\cdots,A_{N-1}). For each pair i, j (0 \leq i \leq K-1,\ 0 \leq j \leq N-1), X_{i \times N + j}=A_j holds.

Snuke has an integer sequence s, which is initially empty.
For each i=0,1,2,\cdots,N \times K-1, in this order, he will perform the following operation:

If s does not contain X_i: add X_i to the end of s.

If s does contain X_i: repeatedly delete the element at the end of s until s no longer contains X_i. Note that, in this case, we do not add X_i to the end of s.

Find the elements of s after Snuke finished the operations.

Constraints

1 \leq N \leq 2 \times 10^5

1 \leq K \leq 10^{12}

1 \leq A_i \leq 2 \times 10^5

All values in input are integers.

Input

Input is given from Standard Input in the following format:

N K
A_0 A_1 \cdots A_{N-1}

Output

Print the elements of s after Snuke finished the operations, in order from beginning to end, with spaces in between.

Sample Input 1

3 2
1 2 3

Sample Output 1

2 3

In this case, X=(1,2,3,1,2,3).
We will perform the operations as follows:

i=0: s does not contain 1, so we add 1 to the end of s, resulting in s=(1).

i=1: s does not contain 2, so we add 2 to the end of s, resulting in s=(1,2).

i=2: s does not contain 3, so we add 3 to the end of s, resulting in s=(1,2,3).

i=3: s does contain 1, so we repeatedly delete the element at the end of s as long as s contains 1, which causes the following changes to s: (1,2,3)→(1,2)→(1)→().

i=4: s does not contain 2, so we add 2 to the end of s, resulting in s=(2).

i=5: s does not contain 3, so we add 3 to the end of s, resulting in s=(2,3).

Sample Input 2

5 10
1 2 3 2 3

Sample Output 2

3

Sample Input 3

6 1000000000000
1 1 2 2 3 3

Sample Output 3

s may be empty in the end.

Sample Input 4

11 97
3 1 4 1 5 9 2 6 5 3 5

Sample Output 4

9 2 6

Solution in JavaScript (node.js v5.12) (judge verdict: Time Limit Exceeded)

var GET=(function(){function f(s){return new g(s);}function g(s){this._s=s.trim().split("\n");this._y=0;}g.prototype.a=function(f){var s=this._s, y=this._y, r;if(typeof s[y]==="string")s[y]=s[y].split(" ").reverse();r=s[y].pop();if(!s[y].length)this._y++;return f?r:+r;};g.prototype.l=function(f){var s=this._s[this._y++].split(" ");return f?s:s.map(a=>+a);};g.prototype.m=function(n,f){var r=this._s.slice(this._y,this._y+=n).map(a=>a.split(" "));return f?r:r.map(a=>a.map(a=>+a));};g.prototype.r=function(n,f){var r=this._s.slice(this._y,this._y+=n);return f?r:r.map(a=>+a);};return f;})();
var o=GET(require("fs").readFileSync("/dev/stdin","utf8"));
function xArray(v){var a=arguments,l=a.length,r="Array(a["+--l+"]).fill(0).map(x=>{return "+v+";})";while(--l)r="Array(a["+l+"]).fill(0).map(x=>"+r+")";return eval(r);}
function lower_bound(d,a,b,e){for(var c;1<b-a;)d[c=0|(a+b)/2]<e?a=c:b=c;return d[a]<e?b:a};

main();
function main(){
  var n = o.a();
  var k = o.a();
  var a = o.l();
  var map = {};
  for(var i = 0; i < n; i++){
    if(map[a[i]])map[a[i]].push(i);
    else map[a[i]] = [i];
  }
  var ans = [];
  for(var j = 0; j < n; j++){
    var t = a[j];
    var l = lower_bound(map[t],0,map[t].length,j+1);
    if(l !== map[t].length){
      j = map[t][l];
    }else{
      ans.push(t);
    }
  }
  if(k === 1 || ans.length === 0){
    if(ans.length)console.log(ans.join(" "));
    return;
  }
  var set = new Set();
  set.add(ans[0]);
  var first = [,ans[0]];
  for(var i = 1; i < k; i++){
    var t = first[i];
    var l = lower_bound(map[t],0,map[t].length,0);
    ans = [];
    var f = 0;
    for(var j = map[t][l]+1; j < n; j++){
      var t = a[j];
      var l = lower_bound(map[t],0,map[t].length,j+1);
      if(l !== map[t].length){
        j = map[t][l];
        f = 0;
      }else{
        ans.push(t);
        if(f){
          if(!set.has(t)){
            i++;
            first.push(t);
          }else f = 0;
        }
        if(ans.length === 1){
          set.add(t);
          first.push(t);
          f = 1;
        }
      }
    }
    if(ans.length === 0)break;
  }
  if(ans.length === 0)i++;
  var q = k%i;
  if(q===0){
    if(ans.length)console.log(ans.join(" "));
    return;
  }
  if(q === 1)var l = 0;else{
    var t = first[q-1];
    var l = lower_bound(map[t],0,map[t].length,0);
    l = map[t][l]+1;
  }
  ans = [];
  for(var j = l; j < n; j++){
    var t = a[j];
    var l = lower_bound(map[t],0,map[t].length,j+1);
    if(l !== map[t].length){
      j = map[t][l];
    }else{
      ans.push(t);
    }
  }
  if(ans.length)console.log(ans.join(" "));
}