#include <bits/stdc++.h>
using namespace std;
int a[212345];
int cnts[212345];
int lft[212345];
int rght[212345];
int cumsum[212345];
int get_right_ans(int i) { return cumsum[rght[i]] - cumsum[i]; }
int get_left_ans(int i) {
  if (lft[i]) return cumsum[i - 1] - cumsum[lft[i] - 1];
  return cumsum[i - 1];
}
void print_ans(int fin_ans, int slope) {
  if (cnts[fin_ans] < 1) {
    return;
  }
  if (cnts[fin_ans] < 2) {
    cnts[fin_ans] -= 1;
    printf("%d ", fin_ans);
    return;
  }
  printf("%d ", fin_ans);
  cnts[fin_ans] -= 1;
  print_ans(fin_ans + slope, slope);
  while (cnts[fin_ans]) {
    printf("%d ", fin_ans);
    cnts[fin_ans]--;
  }
}
int main() {
  int n, tmp, fnd;
  scanf("%d", &n);
  ;
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
    ;
    cnts[a[i]] += 1;
  }
  int lst_val = -1;
  for (int i = 0; i < 212345; i++) {
    lft[i] = lst_val;
    if (cnts[i] < 2) lst_val = i;
  }
  lst_val = 212345;
  for (int i = 212345 - 1; i >= 0; i--) {
    rght[i] = lst_val;
    if (cnts[i] < 2) lst_val = i;
  }
  for (int i = 1; i < 212345; i++) cumsum[i] = cumsum[i - 1] + cnts[i];
  int maxi = 0;
  int fin_ans = -1;
  for (int i = 1; i < 212345; i++) {
    if (cnts[i] == 1) {
      if (1 + max(get_right_ans(i), get_left_ans(i)) > maxi) {
        maxi = max(maxi, 1 + max(get_right_ans(i), get_left_ans(i)));
        fin_ans = i;
      }
    } else if (cnts[i] > 1) {
      if (cnts[i] + get_right_ans(i) + get_left_ans(i) > maxi) {
        maxi = max(maxi, cnts[i] + get_right_ans(i) + get_left_ans(i));
        fin_ans = i;
      }
    }
  }
  printf("%d\n", maxi);
  if (cnts[fin_ans] == 1) {
    printf("%d ", fin_ans);
    if (get_left_ans(fin_ans) > get_right_ans(fin_ans))
      print_ans(fin_ans - 1, -1);
    else
      print_ans(fin_ans + 1, +1);
  } else {
    if (get_left_ans(fin_ans)) {
      printf("%d ", fin_ans);
      print_ans(fin_ans - 1, -1);
      cnts[fin_ans] -= 1;
    }
    if (get_right_ans(fin_ans)) {
      printf("%d ", fin_ans);
      print_ans(fin_ans + 1, 1);
      cnts[fin_ans] -= 1;
    }
    while (cnts[fin_ans]) {
      printf("%d ", fin_ans);
      cnts[fin_ans]--;
    }
  }
}
