#include <bits/stdc++.h>
using namespace std;
const int maxn = 100000 + 10;
int n;
int num[maxn];
map<int, int> mapp;
vector<int> G[maxn], U[maxn];
int id;
int get_id(int x) {
  if (mapp.count(x)) return mapp[x];
  return mapp[x] = id++;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d", &num[i]);
  id = 1;
  for (int i = 0; i < n; i++) {
    int ID = get_id(num[i]);
    G[ID].push_back(i);
  }
  for (int i = 1; i < id; i++)
    for (int j = 0; j < G[i].size(); j++)
      for (int k = j + 1; k < G[i].size(); k++)
        U[G[i][k] - G[i][j]].push_back(G[i][j]);
  int now = 0, i, j, k;
  for (i = 1; i < n; i++) {
    sort(U[i].begin(), U[i].end());
    for (j = 0; j < U[i].size(); j = k) {
      if (U[i][j] < now) {
        k = j + 1;
        continue;
      }
      for (k = j + 1;
           k - j < i && k < U[i].size() && U[i][k] == U[i][k - 1] + 1; k++)
        ;
      if (k - j == i) now = U[i][j] + i;
    }
  }
  printf("%d\n", n - now);
  for (int i = now; i < n; i++) printf("%d ", num[i]);
  puts("");
  return 0;
}
