#include <bits/stdc++.h>
using namespace std;
int n, poz, cate;
int a[1000005];
long long sum[1000005];
long double Sol = -1;
inline long double Val(int p, int mij) {
  return (long double)(sum[p] - sum[p - mij - 1] + sum[n] - sum[n - mij]) /
         (1 + 2 * mij);
}
inline void Solve(int p) {
  int st = 0, dr = min(p - 1, n - p), mij1, mij2;
  for (int step = 1; step <= 200; ++step) {
    if (st == dr) break;
    if (dr - st == 1) {
      if (Val(p, st) < Val(p, dr))
        ++st;
      else
        --dr;
      break;
    }
    mij1 = st + (dr - st + 1) / 3 - 1;
    mij2 = dr - (dr - st + 1) / 3 + 1;
    if (Val(p, mij1) < Val(p, mij2))
      st = mij1 + 1;
    else
      dr = mij2 - 1;
  }
  if (Sol < Val(p, st) - a[p]) {
    Sol = Val(p, st) - a[p];
    poz = p;
    cate = st;
  }
}
int main() {
  int i, j;
  cin.sync_with_stdio(0);
  cin >> n;
  for (i = 1; i <= n; ++i) cin >> a[i];
  sort(a + 1, a + n + 1);
  for (i = 1; i <= n; ++i) sum[i] = sum[i - 1] + a[i];
  for (i = 1; i <= n; ++i) Solve(i);
  cout << 2 * cate + 1 << "\n";
  for (i = poz - cate; i <= poz; ++i) cout << a[i] << " ";
  for (i = n - cate + 1; i <= n; ++i) cout << a[i] << " ";
  return 0;
}
