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.*;
 
 
public class EduRound15Q2
{
	public static void main(String[] args) 
	{
    	FastScanner obj = new FastScanner();
    	out = new PrintWriter(new BufferedOutputStream(System.out));
     	int i, j;
        
        long [] arr= new long[33];
        arr[0] = 1;
        for(i=1; i<arr.length; i++) 
        	arr[i] = arr[i-1] * 2;
        	   
        HashMap<Long, Integer> map = new HashMap<Long, Integer>();        
        int n = obj.nextInt();
        long ans = 0;
        for(i=0;i<n;i++)
        {
            long a = obj.nextLong();
            for(long p : arr) 
            if(p > a) 
           	{
           	    long req = p - a;
           	    if(map.containsKey(req)) 
           	    	ans += map.get(req);
           	}
            if(map.containsKey(a)) 
            	map.put(a, map.get(a)+1);
            else 
            	map.put(a, 1);
        }
        
        out.println(ans);
       	
       	out.close();
    }
       
   //-----------PrintWriter for faster output---------------------------------
	public static PrintWriter out;
      
   //-----------FastScanner class for faster input----------
    public static class FastScanner 
    {
	 	   BufferedReader br;
	       StringTokenizer st;
	 
	    public FastScanner() {
	 	    br = new BufferedReader(new InputStreamReader(System.in));
	    }
	 
	   	String next() {
	  	    while (st == null || !st.hasMoreElements()) {
	    	    try {
	        	    st = new StringTokenizer(br.readLine());
	              } 
	            catch (IOException e) {
	       	  	    e.printStackTrace();
	              }
	          }
	     	return st.nextToken();
	      }
	 
	   	int nextInt() {
	   	    return Integer.parseInt(next());
	      }
	 
	   	long nextLong() {
	        return Long.parseLong(next());
	      }
	 
	    double nextDouble() {
	       	return Double.parseDouble(next());
	      }
	 
	    String nextLine()
	    {
	   	   String str = "";
			try {
				str = br.readLine();
			  } 
			catch (IOException e) {
				e.printStackTrace();
			  }
			return str;
	     }
	}
	   //--------------------------------------------------------
}