#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5, pr = 31, mod = 1e9 + 9;
long long powers[N], hash_p[N], arr[N], n;
void cal() {
  powers[0] = 1;
  for (int i = 1; i < N; i++) powers[i] = (powers[i - 1] * pr) % mod;
  hash_p[0] = 0;
  for (int i = 0; i < n; i++)
    hash_p[i + 1] = (hash_p[i] + powers[i] * (arr[i])) % mod;
}
long long get_hash(int length, int start) {
  long long hash = (hash_p[start + length] - hash_p[start] + mod) % mod;
  hash = (hash * powers[n - start - 1]) % mod;
  return hash;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  map<int, vector<int>> mp;
  for (int i = 0; i < n; i++) {
    cin >> arr[i];
    mp[arr[i]].push_back(i);
  }
  cal();
  vector<pair<int, int>> sub;
  for (auto i : mp) {
    vector<int> v = i.second;
    int numb = i.first;
    for (int j = 0; j < v.size(); j++) {
      for (int k = j + 1; k < v.size(); k++) {
        int len = v[k] - v[j];
        if (v[k] + len > n) continue;
        if (get_hash(len, v[j]) == get_hash(len, v[k]))
          sub.push_back({len, v[j]});
      }
    }
  }
  sort(sub.begin(), sub.end());
  int l = 0;
  for (int i = 0; i < sub.size(); i++) {
    if (sub[i].second < l) continue;
    l = sub[i].first + sub[i].second;
  }
  cout << n - l << '\n';
  for (int i = l; i < n; i++) cout << arr[i] << " ";
  return 0;
}
