#abc304f. [abc304_f]Shift Table

[abc304_f]Shift Table

问题描述

Takahashi 和 Aoki 将在接下来的 NN 天里进行兼职工作。
Takahashi 的班次安排由字符串 SS 给出,其中 SS 的第 ii 个字符是 # 表示他在第 ii 天上班,. 表示他在第 ii 天不上班。
基于此,Aoki 制定了自己的班次安排如下。

  • 首先,选择一个正因数 MM,且 MM 不等于 NN
  • 接下来,确定前 MM 天的出勤情况。
  • 最后,按顺序对 i=1,2,,NMi = 1, 2, \ldots, N - M,确定 (M+i)(M + i) 天的出勤情况,使其与第 ii 天的出勤情况相同。

注意,不同的 MM 值可能导致相同的最终班次安排。

计算 Aoki 可能的班次安排数量,使得 Takahashi 和 Aoki 在 NN 天中的每一天至少有一个人工作,结果对 998244353998244353 取模。

约束条件

  • NN 是一个介于 2210510^5 之间的整数。
  • SS 是一个长度为 NN 的字符串,由 #. 组成。

输入

输入以以下格式从标准输入给出:

NN SS

输出

输出答案。


示例输入 1

6
##.#.#

示例输出 1

3

Takahashi 在第 11224466 天工作。
设字符串 TT 表示 Aoki 的班次安排,其中 TT 的第 ii 个字符是 # 表示他在第 ii 天上班,. 表示他在第 ii 天不上班。
有三种可能的字符串 TT#######.#.#..##.##

第一个班次安排可以通过选择 M=1M = 12233 来实现,第二个班次安排可以通过选择 M=2M = 2 实现,第三个班次安排可以通过选择 M=3M = 3 实现。


示例输入 2

7
...####

示例输出 2

1

示例输入 3

12
####.####.##

示例输出 3

19