#include <bits/stdc++.h>
using namespace std;
long long a[200005];
set<long long> ns;
long long p2[100];
int main() {
  int n, i, j;
  int cnt = 0;
  long long t = 1;
  while (t < 2000000000) {
    cnt++;
    p2[cnt] = t;
    t *= 2;
  }
  cin >> n;
  for (i = 1; i <= n; i++) {
    scanf("%lld", &a[i]);
    ns.insert(a[i]);
  }
  sort(a + 1, a + 1 + n);
  for (i = 2; i < n; i++) {
    for (j = 1; j <= cnt; j++) {
      long long t1 = a[i] - p2[j], t2 = a[i] + p2[j];
      if (ns.find(t1) != ns.end() && ns.find(t2) != ns.end()) {
        puts("3");
        cout << t1 << " " << a[i] << " " << t2 << endl;
        return 0;
      }
    }
  }
  for (i = 2; i <= n; i++) {
    for (j = 1; j <= cnt; j++) {
      long long t1 = a[i] - p2[j];
      if (ns.find(t1) != ns.end()) {
        puts("2");
        cout << t1 << " " << a[i] << endl;
        return 0;
      }
    }
  }
  puts("1");
  cout << a[1] << endl;
  return 0;
}
