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 $M_i$, the equation should be hold: $M_1~xor~M_2~xor~..~xor~M_K~=~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.