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;
const int maxn = int(1e5) + 11;
int n;
int a[maxn];
int p2[50];
int get_cnt(int k) {
  int *it1 = lower_bound(a + 1, a + 1 + n, k);
  if (*it1 != k) return 0;
  int *it2 = upper_bound(a + 1, a + 1 + n, k);
  return it2 - it1;
}
int main() {
  register int i, k;
  p2[0] = 1;
  for (i = 1; i <= 30; ++i) p2[i] = (p2[i - 1] << 1);
  scanf("%d", &n);
  for (i = 1; i <= n; ++i) scanf("%d", &a[i]);
  sort(a + 1, a + 1 + n);
  long long ans = 0;
  for (k = 1; k <= 30; ++k) {
    int cur = p2[k];
    for (i = 1; i <= n && a[i] <= p2[k - 1]; ++i)
      if (i == 1 || a[i] != a[i - 1]) {
        if (a[i] == p2[k - 1]) {
          int tmp = get_cnt(a[i]);
          ans += 1ll * tmp * (tmp - 1) / 2;
        } else {
          int tmp1 = get_cnt(a[i]), tmp2 = get_cnt(p2[k] - a[i]);
          ans += tmp1 * tmp2;
        }
      }
  }
  cout << ans << endl;
  return 0;
}
