#include <bits/stdc++.h>
using namespace std;
namespace fastIO {
bool IOerror = 0;
inline char nc() {
  static char buf[100000], *p1 = buf + 100000, *pend = buf + 100000;
  if (p1 == pend) {
    p1 = buf;
    pend = buf + fread(buf, 1, 100000, stdin);
    if (pend == p1) {
      IOerror = 1;
      return -1;
    }
  }
  return *p1++;
}
inline bool blank(char ch) {
  return ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t';
}
inline long long read() {
  bool sign = 0;
  char ch = nc();
  long long x = 0;
  for (; blank(ch); ch = nc())
    ;
  if (IOerror) return 0;
  if (ch == '-') sign = 1, ch = nc();
  for (; ch >= '0' && ch <= '9'; ch = nc()) x = x * 10 + ch - '0';
  if (sign) x = -x;
  return x;
}
};  // namespace fastIO
using namespace fastIO;
long long b[1000010], vis[1000010], a[1000010];
set<long long> s;
signed main() {
  long long n = read();
  for (long long i = 1; i <= n; i++) b[i] = read(), a[i] = b[i];
  long long sum = 0, ans = 2e9;
  for (long long i = 1; i <= 62; i++) {
    long long now = sum;
    for (long long j = 1; j <= n; j++) {
      if (!vis[j] && b[j] % 2 == 0) {
        now++;
      }
    }
    if (now < ans) {
      s.clear();
      for (long long j = 1; j <= n; j++) {
        if (vis[j]) s.insert(a[j]);
        if (!vis[j] && b[j] % 2 == 0) {
          s.insert(a[j]);
        }
      }
      ans = min(ans, now);
    }
    for (long long j = 1; j <= n; j++) {
      if (!vis[j]) {
        if (b[j] % 2 == 0)
          b[j] /= 2;
        else
          sum++, vis[j] = 1;
      }
    }
  }
  cout << ans << '\n';
  for (auto i : s) cout << i << ' ';
  return 0;
}
