#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
const int maxn = 300009;
const int maxm = 300009;
const double pi = acos(-1.0);
const double eps = 1e-12;
long long data[maxn], suf[maxn];
long long f(int i, int m, int n) {
  return (suf[i] - suf[i - m - 1] + suf[n] - suf[n - m]);
}
long long g(int m) { return 2 * m + 1; }
void sanfen(int n) {
  sort(data + 1, data + n + 1);
  for (int i = 1; i <= n; i++) suf[i] = suf[i - 1] + data[i];
  long long sum = 0, gsum = 1;
  int len = 0, mid2 = 1;
  for (int i = 2; i <= n - 1; i++) {
    int l = 1, r = min(i - 1, (n - i)), mid = (2 * l + r) / 3,
        midd = (l + 2 * r + 2) / 3;
    int tryn = 100;
    while (l <= r && tryn--) {
      long long fmid = f(i, mid, n), fmidd = f(i, midd, n), gmid = g(mid),
                gmidd = g(midd);
      if (fmid * gmidd > fmidd * gmid)
        r = midd - 1;
      else
        l = mid + 1;
      mid = (2 * l + r) / 3, midd = (l + 2 * r + 2) / 3;
    }
    l = (l + r) >> 1;
    if ((f(i, l, n) - data[i] * g(l)) * gsum > sum * g(l)) {
      sum = f(i, l, n) - data[i] * g(l);
      gsum = g(l);
      len = l;
      mid2 = i;
    }
  }
  cout << len * 2 + 1 << endl;
  for (int i = mid2 - len; i <= mid2; i++) cout << (int)data[i] << ' ';
  for (int i = n - len + 1; i <= n; i++) cout << (int)data[i] << ' ';
  cout << endl;
}
int main() {
  ios ::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n;
  while (cin >> n) {
    memset(suf, 0, sizeof(suf));
    suf[0] = 0;
    for (int i = 1; i <= n; i++) cin >> data[i];
    if (n >= 3)
      sanfen(n);
    else
      cout << 1 << endl << (int)data[1] << endl;
  }
  return 0;
}
