#include <bits/stdc++.h>
using namespace std;
int n, k, a[1000001], u;
map<int, int> used;
deque<int> h;
int main() {
  cin >> n >> k;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    if (used[a[i]] == 0) {
      h.push_front(a[i]);
      used[a[i]] = 1;
      if (h.size() > k) {
        u = h.back();
        used[u] = 0;
        h.pop_back();
      }
    }
  }
  cout << h.size() << "\n";
  while (!h.empty()) {
    u = h.front();
    cout << u << ' ';
    h.pop_front();
  }
}
