CF1287B.Hyperset

传统题 时间 3000 ms 内存 256 MiB 7 尝试 14 已通过 11 标签

Hyperset

题目描述

桌上有 nn 张互不相同的卡片,每张卡片有 kk 个特征。每个特征只能取字符 S、E、T 之一。

任取三张卡片,若对每一个特征位置而言,这三张卡在该位置上的字符要么全部相同,要么两两不同,则称这三张卡片构成一个合法集合。

求从给定卡片中选出三张并构成合法集合的方案数。

输入格式

第一行输入两个整数 n,kn,k(1≤n≤15001 \le n \le 1500,1≤k≤301 \le k \le 30),分别表示卡片数量和每张卡片的特征数量。

接下来 nn 行,每行输入一个长度为 kk 的字符串,仅由 S、E、T 组成,表示一张卡片。保证所有卡片互不相同。

输出格式

输出一个整数,表示合法集合的数量。

样例

样例 1

输入:

3 3
SET
ETS
TSE

输出:

1

样例 2

输入:

3 4
SETE
ETSE
TSES

输出:

0

样例 3

输入:

5 4
SETT
TEST
EEET
ESTE
STES

输出:

2

说明

样例 3 中,SETT、TEST、EEET 构成一个合法集合;TEST、ESTE、STES 构成另一个合法集合。

在线编程 IDE

建议全屏模式获得最佳体验