#include <bits/stdc++.h>
using namespace std;
template <class T>
bool mini(T &a, T b) {
  return a > b ? (a = b, true) : false;
}
template <class T>
bool maxi(T &a, T b) {
  return a < b ? (a = b, true) : false;
}
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.precision(10);
  cout << fixed;
  int n, k;
  cin >> n >> k;
  deque<int> ans;
  set<int> s;
  for (int i = 0; i < (int)(n); i++) {
    int x;
    cin >> x;
    if (*s.lower_bound(x) == x) continue;
    ans.push_front(x);
    s.insert(x);
    if ((int)ans.size() > k) {
      auto it = s.lower_bound(ans.back());
      s.erase(it);
      ans.pop_back();
    }
  }
  cout << ans.size() << "\n";
  for (auto i : ans) cout << i << ' ';
}
