Problem Description
BrotherK likes playing GALGAME, now he wants to design a GALGAME.

Ery has designed N roles for his game, each role can be described as four integers: name, face, character, magic(Just a special parameter, don't care about it). BrotherK need to select some roles for his game, and there are some rules:

Assume BrotherK has selected K roles, i-th role's magic is Mi, the equation should be hold: M1 xor M2 xor .. xor MK = 0. (xor means exclusive or, (a xor b) means (a ^ b) in C/C++/Java).

There is not any pair of selected role has same face.

For each character(except there is not any role with the character), BrotherK should select at least one role with the character.

Now, BrotherK wants to know there are how many ways to choose roles.

The first line contains a single integer T, indicating the number of test cases.

Each test case begins with one integers N, indicating the number of roles designed by Ery.Following N lines, i-th line contains three integers
Facei, Characteri and Magici, describing the role whose Name is i.

T is about 100, in most case, N is small.

1 ≤ N ≤ 32.

1 ≤ Facei,Characteri ≤ N.

0 ≤ Magici ≤ 100000.

For each test, print one line.

The line contains a number indicating the number of BrotherK's ways to choose roles.

Sample Input
1 2 1
2 1 1
1 1 1
1 2 1
1 1 2
1 2 2
2 1 1
3 2 2

Sample Output


model name : AMD Opteron(tm) Processor 6136
stepping : 1
cpu MHz : 800.000
cache size : 512 KB
physical id : 0
siblings : 8
core id : 0

Csdn user default icon