#include <bits/stdc++.h>
using namespace std;
vector<int> callps(string &s) {
  int i, j = 0, n = s.size();
  vector<int> lps(n + 1);
  for (i = 1; i < n;) {
    if (s[i] == s[j]) {
      lps[i++] = ++j;
    } else {
      if (j == 0)
        i++;
      else {
        j = lps[j - 1];
      }
    }
  }
  return lps;
}
int KMP(string &A, string &B) {
  int n = A.size(), m = B.size(), i, j = 0;
  vector<int> lps = callps(B);
  for (i = max(0, n - m); i < n;) {
    if (A[i] == B[j]) {
      i++, j++;
    } else {
      if (j == 0)
        i++;
      else {
        j = lps[j - 1];
      }
    }
  }
  return j;
}
long long pr(long long x, long long y) {
  if (!y) return 1;
  long long res = 1;
  while (y > 1) {
    if (y & 1) res *= x, res %= 1000000007;
    x *= x;
    x %= 1000000007;
    y >>= 1;
  }
  res *= x;
  res %= 1000000007;
  return res;
}
long long fact(long long x) {
  long long res = 1, i;
  for (i = 1; i < x + 1; i++) res *= i, res %= 1000000007;
  return res;
}
void solve() {
  long long int i, j = 0, r = 200, p, q, k, d, y = 0, h, flag = 1, n, m = 0,
                   a = 1000000007, b = 1000000007, h1, h2, a1, b1, a2, w, x, u,
                   f, l, c;
  cin >> n;
  vector<long long> v(n);
  for (i = 0; i < n; i++) cin >> v[i];
  map<long long int, vector<long long int> > M;
  for (i = 0; i < n; i++) {
    k = v[i];
    y = 0;
    while (k % 2 == 0) {
      k /= 2;
      y++;
    }
    M[y].push_back(v[i]);
  }
  vector<long long int> vt;
  k = 0;
  long long id = 0;
  for (auto it : M) {
    vt = it.second;
    if ((long long)vt.size() > k) {
      id = it.first;
      k = (long long)vt.size();
    }
  }
  cout << n - k << endl;
  for (auto it : M) {
    vt = it.second;
    if (id == it.first) continue;
    for (auto it2 : vt) cout << it2 << " ";
  }
}
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) solve();
}
