PSET 是游戏 SET 的衍生版本。游戏 SET 共有 81 张牌,每张牌上印有 1、2 或 3 个相同的形状。这些形状包括(在本题中): 箭头(Arrow)、菱形(Diamond)和椭圆(Oval)。
每组形状都有颜色(红色、绿色或蓝色,若页面为黑白则分别标记为 R、G 或 B)和填充类型: 空心(Empty)、条纹(Striped)或实心(Filled)。
这构成了 81 种可能的组合。如果三张牌在每一个属性(数量、颜色、填充和形状)上要么全部相同,要么全部不同,则这三张牌构成一个 SET。例如,对于下图中的牌,1、2 和 3 构成一个 SET(数量不同、颜色相同、填充不同、形状不同),但 1、2 和 4 不构成 SET(原因有多种,其中之一是 1 和 4 的数量相同,而 2 的数量不同):
注意,给定两张牌,有且仅有一张牌能与前两张牌构成一个 SET。
我们使用代码 {count}{color}{fill}{shape} 来表示一张 SET 牌。例如,上述牌的代码分别为:2GSD、3GFA、1GEO、2BSA。其中 {fill} 为 E、S 或 F,分别代表空心(Empty)、条纹(Striped)或实心(Filled);{shape} 为 A、D 或 O,分别代表箭头(Arrow)、菱形(Diamond)或椭圆(Oval)。
每张 PSET 牌由两张与 2GSD 不同的 SET 牌组成,且这两张牌与 2GSD 共同构成一个 SET。以上面的例子为例,即 3GFA 和 1GEO。PSET 牌上的两张 SET 牌上下排列并旋转了 90 度。参见下文示例。
如果三张 PSET 牌(在可能翻转某张牌的情况下)满足其顶部的 SET 牌构成一个 SET,且底部的 SET 牌也构成一个 SET,则这三张 PSET 牌构成一个 PSET。
在下方的示例中,共有四个 PSET:{ 1, (翻转) 2, 3 },{ 1, 2, 4 },{ (翻转) 1, 3, 4 } 以及 { 2, 3, (翻转) 4 }。
编写一个程序,输入一组不同的 PSET 牌,并输出(三张牌组成的)PSET 的数量。
输入格式
输入包含多行。第一行包含后续 PSET 牌的数量 $N$ ($4 \le N \le 20$)。随后是 $N$ 行输入,每行代表一张牌。每行包含一个四字符代码(如上所述)表示牌的顶部,后跟一个空格,再跟一个四字符代码表示牌的底部。
输出格式
输出一行,包含输入集合中 PSET 的整数数量。
样例
样例输入 1
4 3BFD 1RED 1GSA 3GSO 3REA 1BFO 2REO 2BFA
样例输出 1
4