#include <bits/stdc++.h>
using namespace std;
int N;
long long sum[200005];
pair<long long, int> search(int id) {
  int lo = 0, hi = min(id - 1, N - id);
  while (hi > lo) {
    if (lo + 2 >= hi) {
      if ((2 * lo + 3) * (sum[N] - sum[N - (lo)] + sum[id] - sum[id - (lo)-1]) <
          (2 * lo + 1) *
              (sum[N] - sum[N - (lo + 1)] + sum[id] - sum[id - (lo + 1) - 1]))
        lo = lo + 1;
      if ((2 * hi + 1) * (sum[N] - sum[N - (lo)] + sum[id] - sum[id - (lo)-1]) <
          (2 * lo + 1) * (sum[N] - sum[N - (hi)] + sum[id] - sum[id - (hi)-1]))
        lo = hi;
      break;
    }
    int one = (2 * lo + hi) / 3, two = (lo + 2 * hi) / 3;
    if ((2 * two + 1) *
            (sum[N] - sum[N - (one)] + sum[id] - sum[id - (one)-1]) <
        (2 * one + 1) * (sum[N] - sum[N - (two)] + sum[id] - sum[id - (two)-1]))
      lo = one;
    else
      hi = two;
  }
  return make_pair(
      (sum[N] - sum[N - (lo)] + sum[id] - sum[id - (lo)-1]) -
          (2 * lo + 1) * (sum[N] - sum[N - (0)] + sum[id] - sum[id - (0) - 1]),
      lo);
}
int main() {
  scanf("%d", &N);
  for (int i = 0; i < (int)N; i++) scanf("%I64d", &sum[i + 1]);
  sort(sum + 1, sum + 1 + N);
  for (int i = 1; i < (int)N + 1; i++) sum[i] += sum[i - 1];
  pair<long long, int> mx = make_pair(-1, 0);
  int len = 0, p = 0;
  for (int i = 1; i < (int)N + 1; i++) {
    pair<long long, int> d = search(i);
    if ((2 * mx.second + 1) * d.first > (2 * d.second + 1) * mx.first)
      mx = d, len = d.second, p = i;
  }
  printf("%d\n", 2 * len + 1);
  for (int i = p - len; i < (int)p + 1; i++) {
    if (i > p - len) printf(" ");
    printf("%d", sum[i] - sum[i - 1]);
  }
  for (int i = N - len + 1; i < (int)N + 1; i++)
    printf(" %d", sum[i] - sum[i - 1]);
  puts("");
}
