#include <bits/stdc++.h>
using namespace std;
map<int, vector<int> > m;
const int MAX = 1e5 + 9, BASE = 1999, MOD = 1e9 + 7;
int a[MAX], pw[MAX], h[MAX], n, k = 0;
vector<pair<int, int> > v;
int hsh(int l, int r) {
  return 1LL * (h[r] - h[l - 1] + MOD) % MOD * pw[n - l - 1] % MOD;
}
bool cmp(pair<int, int> a, pair<int, int> b) {
  if (a.second - a.first != b.second - b.first)
    return a.second - a.first < b.second - b.first;
  return a.first < b.first;
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++)
    cin >> a[i], pw[i] = (i ? 1LL * pw[i - 1] * BASE % MOD : 1),
                 h[i] = ((i ? h[i - 1] : 0) + 1LL * pw[i] * a[i] % MOD) % MOD,
                 m[a[i]].push_back(i);
  for (auto i : m)
    for (int j = 0; j < i.second.size(); j++)
      for (int k = j + 1; k < i.second.size(); k++)
        if (i.second[k] - i.second[j] <= n - i.second[k] &&
            hsh(i.second[j], i.second[k] - 1) ==
                hsh(i.second[k], 2 * i.second[k] - i.second[j] - 1))
          v.push_back({i.second[j], i.second[k]});
  sort(v.begin(), v.end(), cmp);
  for (auto i : v)
    if (i.first >= k) k = i.second;
  cout << n - k << '\n';
  for (int i = k; i < n; i++) cout << a[i] << ' ';
}
