#include <bits/stdc++.h>
using namespace std;
int const MaxSize = 1e5 + 10;
int n, maxV, minV;
map<int, int> cnt;
void p(int minC, int midC, int maxC) {
  for (int i = int(0); i < int(minC); i++) {
    printf("%d ", minV);
  }
  for (int i = int(0); i < int(midC); i++) {
    printf("%d ", minV + 1);
  }
  for (int i = int(0); i < int(maxC); i++) {
    printf("%d ", maxV);
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  maxV = -1e9;
  minV = 1e9;
  scanf("%d", &n);
  for (int i = int(0); i < int(n); i++) {
    int a;
    scanf("%d", &a);
    cnt[a]++;
    maxV = max(maxV, a);
    minV = min(minV, a);
  }
  if (maxV == minV) {
    printf("%d\n", n);
    p(cnt[minV], 0, 0);
  } else if (maxV - minV < 2) {
    printf("%d\n", n);
    p(cnt[minV], 0, cnt[maxV]);
  } else {
    int numPair = min(cnt[maxV], cnt[minV]);
    int num0Pair = cnt[minV + 1] / 2;
    if (numPair > num0Pair) {
      printf("%d\n", n - numPair * 2);
      p(cnt[minV] - numPair, cnt[minV + 1] + numPair * 2, cnt[maxV] - numPair);
    } else {
      printf("%d\n", n - num0Pair * 2);
      p(cnt[minV] + num0Pair, cnt[minV + 1] - num0Pair * 2,
        cnt[maxV] + num0Pair);
    }
  }
  return 0;
}
