从高中升入大学后,你发现了一件绝对悲惨的事情。大学计算 GPA 的方式与你习惯的方式完全不同。显然,根据下表,加号(+)和减号(-)的处理方式与以前大不相同。
| 成绩 | 大学 | 高中 |
|---|---|---|
| A+ | 4.0 | 4.0 |
| A | 4.0 | 4.0 |
| A- | 3.7 | 4.0 |
| B+ | 3.3 | 3.0 |
| B | 3.0 | 3.0 |
| B- | 2.7 | 3.0 |
| C+ | 2.3 | 2.0 |
| C | 2.0 | 2.0 |
| C- | 1.7 | 2.0 |
| D+ | 1.3 | 1.0 |
| D | 1.0 | 1.0 |
| D- | 0.7 | 1.0 |
| F | 0 | 0 |
GPA 的计算方法是:将各科绩点(见上表)相加,然后除以课程数量。你已经收到了本学期的成绩单,但因为太害怕而不敢看,所以你把成绩单上的加号和减号都遮盖住了。因此,你的成绩单可能会有许多不同的变化。
例如,一份显示为 ABB 的成绩单实际上可能是 A+ B B+、A- B- B+,甚至是 A B B。在所有可能的成绩单变化中,有多少种情况下,大学的评分系统计算出的 GPA 实际上会严格好于你以前的高中系统?
由于这个数量可能非常大,请输出答案模 $10^9 + 7$ 的结果。请注意,顺序很重要,因此 A B B+ 和 A B+ B 被视为 ABB 的两种不同的变化。
输入格式
输入的第一行包含一个整数 $N$,表示成绩单的长度($1 \le N \le 3\,000$)。
第二行是一个长度为 $N$ 的字符串(由字符 A, B, C, D, F 组成),表示被遮盖的成绩单。
输出格式
输出一个整数,表示能够让你获得比高中严格更好的 GPA 的成绩单变化数量模 $10^9 + 7$ 的结果。
样例
输入样例 1
2 AB
输出样例 1
2
输入样例 2
3 CCF
输出样例 2
3
图 1:高中与 UCLA 绩点对比表