You are given n integers a1, a2, ..., an. Find the number of pairs of indexes i, j (i < j) that ai + aj is a power of 2 (i. e. some integer x exists so that ai + aj = 2x).

Input

The first line contains the single positive integer n (1 ≤ n ≤ 105) — the number of integers.

The second line contains n positive integers a1, a2, ..., an (1 ≤ ai ≤ 109).

Output

Print the number of pairs of indexes i, j (i < j) that ai + aj is a power of 2.

Examples

Input

4
7 3 2 1


Output

2


Input

3
1 1 1


Output

3

Note

In the first example the following pairs of indexes include in answer: (1, 4) and (2, 4).

In the second example all pairs of indexes (i, j) (where i < j) include in answer.
#include <bits/stdc++.h>
using namespace std;
int n, a[100003], p2[31];
map<int, int> ma;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int i, j, k, t;
  long long ret = 0;
  p2[0] = 1;
  for (i = 1; i < 31; i++) p2[i] = p2[i - 1] << 1;
  cin >> n;
  for (i = 0; i < n; i++) {
    cin >> a[i];
    ma[a[i]]++;
  }
  sort(a, a + n);
  n = unique(a, a + n) - a;
  for (i = 0; i < n; i++) {
    for (k = 1; k < 31; k++) {
      t = p2[k] - a[i];
      if (t > a[n - 1]) break;
      if (t < a[i]) continue;
      if (t == a[i])
        ret += 1ll * ma[a[i]] * (ma[a[i]] - 1) >> 1;
      else
        ret += ma[t] * ma[a[i]];
    }
  }
  cout << ret << endl;
  return 0;
}
