#agc037b. [agc037_b]RGB Balls

[agc037_b]RGB Balls

问题描述

我们有 3N3N 个彩色球,编号从 113N3N。长度为 3N3N 的字符串 SS 表示球的颜色。如果 SiS_iR,则球 ii 是红色;如果 SiS_iG,则球 ii 是绿色;如果 SiS_iB,则球 ii 是蓝色。有 NN 个红球,NN 个绿球和 NN 个蓝球。

高滨要将这 3N3N 个球分发给 NN 个人,使得每个人得到一个红球、一个蓝球和一个绿球。人们希望得到的球的编号彼此相近,所以他还需要满足以下条件:

  • aj<bj<cja_j < b_j < c_j 是第 jj 个人收到的球的编号按升序排列。
  • 那么,sumj(cjaj)\\sum_j (c_j-a_j) 应尽可能小。

找到高滨分发球的方式的数量。由于答案可能非常大,计算结果对 998244353998244353 取模。我们认为两种分发方式不同,当且仅当存在一个人收到不同的一组球。

约束条件

  • 1leqNleq1051 \\leq N \\leq 10^5
  • S=3N|S|=3N
  • SS 由字符 RGB 组成,且每个字符在 SS 中出现 NN 次。

输入

输入以以下格式给出:

NN SS

输出

打印高滨分发球的方式的数量,取模 998244353998244353


示例输入 1

3
RRRGGGBBB

示例输出 1

216

当球被如下分发时,sumj(cjaj)\\sum_j (c_j-a_j) 的最小值是 1818

  • 第一个人得到球 115599
  • 第二个人得到球 224488
  • 第三个人得到球 336677

示例输入 2

5
BBRGRRGRGGRBBGB

示例输出 2

960