PPIIIGG
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld

题目描述

在超级猪星上,超级小猪研究员发现了一个仅由字符 PIG 组成的字符串 S。现在需要统计其中有多少个 超级 PIG 序列


超级小猪


一个 超级 PIG 序列 需要满足以下条件:


  • 它由 aPbIcG 依次拼接而成,即形如 \underbrace{PP\cdots P}_{a}\underbrace{II\cdots I}_{b}\underbrace{GG\cdots G}_{c}


  • a, b, c \ge 1


  • 数量关系满足:a + c - 1 \le b


你需要计算在给定的字符串 S 中,有多少个子序列是 超级 PIG 序列。答案对 10^9+7 取模。


对于一个序列,删除任意个任意位置的字符后得到的新非空序列是原序列的子序列。如 abcde 包含 abcdeace 等子序列。

输入描述:

第一行包含一个整数 T1 \le T \le 10^4),表示测试数据组数。


接下来每组数据:


  • 第一行包含一个整数 n1 \le n \le 1000),表示字符串长度。


  • 第二行包含一个长度为 n 的字符串 S,仅由大写字母P、I、G组成。


保证所有测试数据的 n^2 之和不超过 10^7

输出描述:

对于每组数据,输出一行一个整数,表示满足条件的子序列数量对 10^9+7 取模后的结果。

示例1

输入

复制
2
4
PIIG
7
PPIIIGG

输出

复制
3
45