#include <bits/stdc++.h>
using namespace std;
vector<int> res, cur;
void reset(vector<int> &a) { a.resize(unique(a.begin(), a.end()) - a.begin()); }
void brute(int id, vector<int> a) {
  if (!a.size()) {
    if (res.size() > cur.size()) {
      res = cur;
      return;
    }
  }
  if (id == 18) return;
  bool flag = 0;
  for (int &x : a) flag |= (x & 1);
  if (!flag) {
    vector<int> na;
    for (int x : a)
      if (x / 2) na.push_back(x / 2);
    reset(na);
    brute(id + 1, na);
  } else {
    for (int i = -1; i <= 1; i += 2) {
      vector<int> na;
      for (int x : a) {
        if (x & 1) {
          if ((x - i) / 2) na.push_back((x - i) / 2);
        } else {
          if (x / 2) na.push_back(x / 2);
        }
      }
      reset(na);
      cur.push_back(i * (1 << id));
      brute(id + 1, na);
      cur.pop_back();
    }
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  int n;
  cin >> n;
  vector<int> a;
  for (int i = 1; i <= n; ++i) {
    int x;
    cin >> x;
    if (x) a.push_back(x);
  }
  sort(a.begin(), a.end());
  reset(a);
  res.assign(25, 0);
  brute(0, a);
  cout << res.size() << endl;
  for (int &x : res) cout << x << ' ';
}
