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.HashSet;
import java.util.StringTokenizer;
import java.util.TreeMap;

public class PowersOfTwo {
	
	static boolean isPowerOfTwo(int x)
	{
	    return (x != 0) && ((x & (x - 1)) == 0);
	}
	
	static boolean check()
	{
		for(int i = 0; i < power.length; ++i)
			if(!isPowerOfTwo(power[i])) return false;
		
		return true;
					
					
	}
	
	static int[] power = {1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304
			,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824};
	
	
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(bf.readLine());
		int[] A = new int[n];
		StringTokenizer st = new StringTokenizer(bf.readLine());
		HashSet<Integer> hs = new HashSet<>();
		TreeMap<Integer,Integer> tm = new TreeMap<>();
		for(int i = 0; i < n; ++i)
		{
			int tmp = Integer.parseInt(st.nextToken());
			A[i] = tmp;
			hs.add(tmp);
			if(tm.containsKey(tmp)) tm.put(tmp, tm.get(tmp)+1); else{ tm.put(tmp,1);}
//			idx[tmp] = i;
		}

		long ans = 0;
		
		for(int i = 0; i < n; ++i)
		{
			int tmp = A[i];
			for(int j = 0; j < power.length; ++j)
			{
				int z = power[j]-tmp;
				if(tmp==z)
				{
					if(tm.get(z)<=1) continue;
					ans+=tm.get(z)-1;
					continue;
				}
				if(hs.contains(z))
				{
//					System.out.println(tmp+" "+z);
//					System.out.println(tm.get(z));
					if(tm.get(z)>0){
						ans+=tm.get(z);
//						ans++;
//						System.out.println("!");
					}
				}
			}
			tm.put(tmp,tm.get(tmp)-1); 
		}
		System.out.println(ans);
	}

}





