1498 - Bessie Goes Moo

Farmer John 和奶牛 Bessie 喜欢在空闲时间互相出数学谜题。

上一次 FJ 给 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" 是一个变量,不是零)。对于每个变量,她给 FJ 提供了一个最多包含 500 个整数值的列表,表示该变量可能取的值。

她要求 FJ 计算有多少种不同的方式可以为这些变量赋值,使得整个表达式的值是 7 的倍数。

注意,这个问题的答案可能太大,无法用 32 位整数表示,因此你可能需要使用 64 位整数(例如,C 或 C++ 中的 "long long")。

输入

输入的第一行包含一个整数 N。接下来的 N 行每行包含一个变量及其可能的值。

每个变量在这个列表中至少出现一次,最多出现 500 次。对于同一个变量,不会列出重复的可能值。所有可能的值都在 -10^510^5 的范围内。

输出

输出一个整数,表示 FJ 可以为变量赋值的方式数,使得上述表达式的值是 7 的倍数。

样例

输入

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

输出

2

提示

两种可能的赋值方式是:

(B,E,S,I,G,O,M) = (2, 5, 7, 9, 1, 16, 19) -> 51,765

(B,E,S,I,G,O,M) = (2, 5, 7, 9, 1, 16, 2) -> 34,510

来源

USACO

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题