C. 测试表达式

C. 测试表达式

【问题描述】 
FJ 和奶牛Bessie最爱闲时交换数学智力游戏。最近一次FJ给Bessie 的数学难倒了可怜的Bessie。 现在她想为FJ给他那么难的题目而复仇。
 Bessie 给了FJ 一个表达式,(B+E+S+S+I+E)*(G+O+E+S)*(M+O+O),包括七个不同的变量,B,E,S,I,G,O,M (其中O 是变量不是数字0)。对每个变量,她给了FJ一个变量可能被赋有最多有20个整数值的清单。 她问FJ总共有多少种不同的方式来给每个变量赋值使得表达式的最终结果为偶数。

输入格式:(geteven.in)
  第一行包括一个整数N,接下来的N行,每行包括一个变量以及这个变量可能的值。 每个变量会至少出现一次,最多出现20次。同一个的变量不会被赋两次相同的值。每个值都会在-300到300整数之间。

输出格式:(geteven.out)
  输出一个整数,表示所有FJ可以给这些变量赋值使得表达式最终的结果是偶数的可能方案数。

Sample 1

Input

10
B 2
E 5
S 7
I 10
O 16
M 19
B 3
G 1
I 9
M 2

Output

6

【样例解释】
 共有6种变脸赋值的方法:
(B,E,S,I,G,O,M) = (2, 5, 7, 10, 1, 16, 19) -> 53,244
                = (2, 5, 7, 10, 1, 16, 2 ) -> 35,496
                = (2, 5, 7, 9,  1, 16, 2 ) -> 34,510
                = (3, 5, 7, 10, 1, 16, 2 ) -> 36,482
                = (3, 5, 7, 9,  1, 16, 19) -> 53,244
                = (3, 5, 7, 9,  1, 16, 2 ) -> 35,496
 注意(2,5,7,10,1,16,19)和(3,5,7,9,1,16,19) 算两种不同的赋值方法,尽管他们得出的结果是相同的。

Limitation

1s, 128MiB for each test case.