P26196 [AtCoder] Shorten ABC
省选
题目描述

Problem Statement

We have a string S of length N consisting of A, B, and C.
You can do the following operation on S zero or more times:

  • Choose $i (1 \leq i \leq |S| - 1)$ such that $S_i \neq S_{i + 1}. Replace S_i$ with the character (among A, B, and C) that is different from both S_i and S_{i + 1}, and remove S_{i + 1} from S.

Find the number of distinct strings that S can be after zero or more operations, and print the count modulo (10^9+7).

Input

Input is given from Standard Input in the following format:
N
S

Output

Print the number of distinct strings that S can be after zero or more operations, modulo (10^9+7).

Constraints

  • $1 \leq N \leq 10^6$
  • S is a string of length N consisting of A, B, and C.

Sample Input 1

5
ABAAC

Sample Output 1

11

For example, the following sequence of operations turns S into ACB:

  • First, choose i=2. We replace S_2 with C and remove S_3, turning S into ACAC.
  • Then, choose i=3. We replace S_3 with B and remove S_4, turning S into ACB.

Sample Input 2

50
AACCCCBBBACCCCABABCCCCABACCACACACCACABABBBABABACCB

Sample Output 2

256972022

输入格式

见题面 Input 部分

输出格式

见题面 Output 部分

样例输入
5 ABAAC
样例输出
11