#include <bits/stdc++.h>
using namespace std;
int t[101000], n, h[101000], p[101000];
pair<int, int> w[101000];
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &t[i]);
    w[i].first = t[i];
    w[i].second = i;
  }
  sort(w, w + n);
  for (int i = n - 1; i >= 0; i--) {
    h[i] = ((long long)h[i + 1] * 1337 + t[i]) % 1000000009;
  }
  p[0] = 1;
  for (int i = 1; i <= n; i++) p[i] = (long long)p[i - 1] * 1337 % 1000000009;
  vector<pair<int, int> > s;
  for (int i = 0; i < n; i++) {
    int j = i + 1;
    while (j < n && w[j].first == w[i].first) {
      int len = w[j].second - w[i].second, start = w[i].second;
      long long tmp = h[start] - (long long)h[start + len] * p[len];
      tmp -= h[start + len] - (long long)h[start + 2 * len] * p[len];
      if (tmp % 1000000009 == 0) s.push_back(pair<int, int>(len, start));
      j++;
    }
  }
  sort(s.begin(), s.end());
  int first = 0;
  for (int i = 0; i < s.size(); i++)
    if (s[i].second >= first) {
      first = s[i].second + s[i].first;
    }
  printf("%d\n", n - first);
  for (int i = first; i < n; i++) printf("%d%c", t[i], i + 1 < n ? ' ' : '\n');
}
