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.HashMap;

public class bit
{
	public static void main(String args[]) throws NumberFormatException, IOException 
	{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		int n=Integer.parseInt(br.readLine());
		long arr[]=new long[n];
		long count=0;
		
		HashMap <Long,Long> hm = new HashMap<>();
		
		String line[]=br.readLine().split(" ");
		for(int i=0;i<n;i++) 
		{
			arr[i]=Long.parseLong(line[i]);
			
				
				if(hm.containsKey(arr[i])) 
					hm.put(arr[i], hm.get(arr[i])+1);
				else
					hm.put(arr[i],(long) 1);
		}
		for(int i=0;i<n;i++) 
		{
			for(int j=1;j<=32;j++) 
			{
			long val=(long) Math.pow(2,j);
			
			 if(hm.containsKey(val-arr[i])) 
			 {
				 count+=hm.get(val-arr[i]);
				 if(val-arr[i] == arr[i])
					 count--;
			 } 
				
			
			}
		}
		
		System.out.println(count/2);
		
	}
	
	   
}
