编程题
### 问题描述
小齐设计了 $N$ 道问题,并邀请了 $M$ 名测试者评估每道问题的难度,难度分为 $easy$ 和 $hard$ 两种。
他的目标是创建一个难度递增的问题集,由他的 $N$ 道问题的某个子集按照一定顺序组成。组成的问题集中不能存在这样一对问题,使得某个测试者认为集合中后面的问题容易而前面的问题难。
请计算小齐可以形成的不同问题集的数量,结果需要对 $10^9+7$ 取模。
### 输入格式
第一行包含两个整数 $N$ 和 $M$。
接下来的 $M$ 行,每行包含一个长度为 $N$ 的字符串。字符串的第 $i$ 个字符为 $E$ 表示测试者认为第 $i$ 道问题容易,为 $H$ 表示测试者认为第 $i$ 道问题难。
### 输出格式
输出小齐可以形成的不同问题集的数量,对 $10^9+7$ 取模。
### 样例输入
```
3 1
EHE
```
### 样例输出
```
9
```
### 评测数据规模
$1 \leq M \leq 16$。