#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  int n;
  cin >> n;
  vector<long long> a(n);
  for (int _n(n), i(0); i < _n; i++) cin >> a[i];
  sort((a).begin(), (a).end());
  vector<long long> presum(n + 1);
  for (int _n(n), i(0); i < _n; i++) presum[i + 1] = presum[i] + a[i];
  long long bestN = 0, bestD = 1;
  int bestC = 0, bestL = 0;
  for (int i = 0; i < n; i++) {
    int L = 0;
    int R = min(i, n - 1 - i) + 1;
    while (L < R - 1) {
      int m = (L + R) / 2;
      long long sumN =
          a[i] + presum[n] - presum[n - m] + presum[i] - presum[i - m];
      int sumD = 2 * m + 1;
      long long psumN =
          a[i] + presum[n] - presum[n - m + 1] + presum[i] - presum[i - m + 1];
      int psumD = 2 * m - 1;
      if (sumN * psumD <= psumN * sumD) {
        R = m;
      } else {
        L = m;
      }
    }
    long long sumN =
        a[i] + presum[n] - presum[n - L] + presum[i] - presum[i - L];
    int sumD = 2 * L + 1;
    if (bestN * sumD < (sumN - a[i] * sumD) * bestD) {
      bestN = sumN - a[i] * sumD;
      bestD = sumD;
      bestC = i;
      bestL = L;
    }
  }
  cout << bestL * 2 + 1 << endl;
  for (int i = bestC - bestL; i <= bestC; i++) {
    cout << a[i] << " ";
  }
  for (int i = n - bestL; i < n; i++) {
    cout << a[i] << " ";
  }
  return 0;
}
