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.
// CodeForces Educational Round 15 -- slowe

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.StringTokenizer;


public class B15 {
	static int[] pow = new int[30];
	public static void main(String[] args) throws Exception {
		FastScanner in = new FastScanner();
		PrintWriter pw = new PrintWriter(System.out);
		
		HashMap<Integer, Integer> freq = new HashMap<Integer, Integer>();
		int n = in.nextInt();
		long c = 0;
		for(int i = 0; i < 30; i++)
			pow[i] = 2<<i;
		
		while(n-->0) {
			int x = in.nextInt();
			for(int pow2 : pow)
				if(freq.containsKey(pow2-x))
					c += freq.get(pow2-x);
			
			inc(freq, x);
		}
		
		pw.println(c);
		
		pw.flush();
		pw.close();
	}

	static void inc(HashMap<Integer, Integer> map, int key) {
		Integer count = map.get(key);
		if(count == null)
			count = 0;
		
		map.put(key, count+1);
	}
	
	static class FastScanner {
		BufferedReader br;
		StringTokenizer st;
		public FastScanner() {
			br = new BufferedReader(new InputStreamReader(System.in));
			st = new StringTokenizer("");
		}
		
		String next() throws Exception {
			while(!st.hasMoreTokens())
				st = new StringTokenizer(br.readLine());
			return st.nextToken();
		}
		
		int nextInt() throws Exception {
			return Integer.parseInt(next());
		}
	}
}
