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.
import java.io.*;
import java.util.*;

import static java.lang.Integer.*;
import static java.lang.Long.*;

public class B {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter pw = new PrintWriter(System.out);
        HashMap<Long, Long> map = new HashMap<>();
        StringTokenizer st;
        int n = parseInt(in.readLine());
        st = new StringTokenizer(in.readLine());
        for (int i = 0; i < n; i++) {
            long a = parseLong(st.nextToken());
            long ocr = map.getOrDefault(a, (long)0);
            ocr++;
            map.put(a, ocr);
        }
        pw.println(solve(map));
        pw.close();

    }

    static long solve(HashMap<Long, Long> map) {
        long res = 0;
        for (Map.Entry<Long, Long> e : map.entrySet()) {
            long a1 = e.getKey();
            for (int i = 0; i < 32; i++) {
                long other = (1L << i) - a1;
                if (other <= 0) continue;
                if (other < a1) continue;
                if (map.getOrDefault(other, (long) 0) == 0) continue;
                if (other != e.getKey()) {
                    //System.out.println(e.getKey() + " " + other + " ==== " + e.getValue() + " " + map.get(other));
                    res += e.getValue() * map.get(other);
                } else {
                    res += ((e.getValue() - 1) * e.getValue() / 2);
                }
            }
        }
        return res;
    }
}
