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

public class PowersOfTwo {
    static StringTokenizer st;
    static BufferedReader bf = new BufferedReader(new InputStreamReader(System.in), 325678);

    static HashMap<Long, Long> c = new HashMap<>();
    public static void main(String[] args) throws IOException {
        int n = in();
        long a[] = new long[n], p = 0;
        for (int i = 0; i < n; i++)
            a[i] = inl();


        for (int i = 0; i < n; i++){
            for (long j = 1; j < (1L << 40) && j > 0; j <<= 1)
                p += get(j - a[i]);
            c.put(a[i], get(a[i]) + 1);
        }
        System.out.println(p);
    }

    static long get(long i){
        if (c.containsKey(i))
            return c.get(i);
        return 0;
    }

    public static int in() throws IOException {
        return Integer.parseInt(next());
    }

    public static long inl() throws IOException {
        return Long.parseLong(next());
    }

    public static String next() throws IOException {
        if (st == null || !st.hasMoreTokens())
            st = new StringTokenizer(bf.readLine());
        return st.nextToken();
    }

}
