Split Decisions 谜题是一种填字游戏,其中每个横向和纵向的答案都是一对单词,而不是单个单词(如标准填字游戏)。每一对单词除了在两个相邻位置不同外,其余部分完全相同,这两个位置提供的字母即为该单词对的线索。在图 K.1 的左半部分,给出了字母对 “IN” 和 “CR”,单词 “SINEW” 和 “SCREW” 可用于解答该线索。图的右半部分展示了一个典型的 Split Decisions 谜题。
图 K.1:一个小型 Split Decisions 谜题,包含一个已解答的线索示例。
虽然我们可以要求你解答给定的 Split Decisions 谜题,但我们决定为你提供一个略有不同的任务。给定一个单词列表,我们希望你找出可用于 Split Decisions 谜题的单词对。具体来说,每一对单词必须在恰好两个连续字母上不同,且必须是唯一能满足这些字母组合的单词对(即列表中没有其他单词对能解答该线索)。
例如,如果你的单词列表包含单词 CELL、GULL、GUSH、HALL 和 HASH,你可以构成两个线索:[CE/GU]_ _(对应答案对 CELL/GULL)和 [CE/HA]_ _(对应答案对 CELL/HALL)。注意,线索 [GU/HA]_ _ 有两个可能的解(GULL/HALL 和 GUSH/HASH),因此它不应被考虑。
输入格式
第一行包含一个正整数 $n$ ($1 \le n \le 1500$),表示单词列表中的单词数量。 随后有 $n$ 行,每行包含一个单词。每个单词由大写字母组成,且长度不小于 3 且不超过 20。
输出格式
输出输入中存在有效 Split Decisions 线索的唯一单词对的数量。
样例
样例输入 1
5 CELL GULL GUSH HALL HASH
样例输出 1
2