spoj#ADABLOOM. Ada and Bloom

Ada and Bloom

As you might already know, Ada the Ladybug is a farmer. She grows many beautiful flowers. Each of the flowers has something called "blooming value". As long as Ai < Ai Aj < Aj (where ⊕ stands for binary XOR, and A stands for "blooming value") is true for any pair of flowers (in any order), then those flowers-pair might bloom into a wonderful blossom, if they are replanted into same box (at most 2 flowers can be put into one box).

Ada wants to maximize the number of blossoms - can you find it?

Input

The first line of input containt 1 ≤ T ≤ 500 test-cases.

The first line of each test-case contains N 1 ≤ N ≤ 5000

The next line contains N integers 0 < Ai ≤ 1018, the blooming value of flower.

NOTE: The number of test-cases varies depending on size of array (the longest array won't be a single file more than once).

Output

For each test-cases, print the maximal number of blossoms Ada can achieve.

Example Input 1

6
7
8 5 4 8 4 9 11
6
9 9 12 12 4 6
3
7 7 4
4
10 6 9 1
8
11 4 12 3 1 2 1 10
4
12 2 5 2

Example Output 1

0
2
0
1
4
1

All possible pairs 1

Test-case 1:
Test-case 2:
4 < 8 < 12
4 < 8 < 12
6 < 10 < 12
6 < 10 < 12
Test-case 3:
Test-case 4:
1 < 8 < 9
Test-case 5:
1 < 2 < 3
1 < 10 < 11
1 < 2 < 3
1 < 10 < 11
2 < 8 < 10
2 < 9 < 11
3 < 9 < 10
3 < 8 < 11
4 < 8 < 12
Test-case 6:
5 < 9 < 12

Example Input 2

1
20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Example Output 3

7