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

public class B {

	public static void main(String[] args) throws NumberFormatException, IOException {
		// TODO Auto-generated method stub
		BufferedReader k = new BufferedReader(new InputStreamReader(System.in));
		
		int len = Integer.parseInt(k.readLine());
		long[]nums = new long[len];
		HashMap<Long , Integer> numSet = new HashMap<>();

		StringTokenizer str = new StringTokenizer(k.readLine());
		
		for (int i = 0; i < nums.length; i++) {
			nums[i] = Long.parseLong(str.nextToken());			
		}
		
		
		
		long count = 0;
		long one = 1;
		for (int i = 0; i < nums.length; i++) {
			long newNum = 0;
		
				ArrayList<Long>tmpDb = new ArrayList<>();
				boolean first = true;
				for (long j = 0; j < 64; j++) {
					long y = (one << j); 
					if ((y & nums[i]) == y) {
						if (first) {
							newNum = (newNum | y);
							first = false;
						} 
						
					}else if(!first){
						long tmp  = (newNum | y);
						if (tmp > nums[i]) {
							if (numSet.containsKey(newNum)) {
								

								count += numSet.get(newNum);
								
								
							}
						}
						newNum = tmp;
					}
				}

			if (numSet.containsKey(nums[i])) {
				numSet.put(nums[i], numSet.get(nums[i])+1);
			}
			else{
				numSet.put(nums[i], +1);
	
			}
					
		}

		
		System.out.println(count);
		
		
	}

}