#ATagc061f. [AGC061F] Perfect Strings

[AGC061F] Perfect Strings

题目描述

给定正整数 N, MN,\ M

01 组成的字符串 ss,若满足以下所有条件,则称其为良好字符串:

  • ss 非空。
  • ss1 的个数是 NN 的倍数。
  • ss0 的个数是 MM 的倍数。

如果一个良好字符串不包含更短的良好字符串作为(连续的)子串,则称其为完美字符串。例如,当 N=3, M=2N=3,\ M=2 时,字符串 1110010101 是完美的,而 000011001 不是完美的。

可以证明,对于任意的 N, MN,\ M,完美字符串的数量是有限的。请对于给定的 N, MN,\ M,求出完美字符串的数量对 998244353998\,244\,353 取模的结果。

输入格式

输入从标准输入读取,格式如下:

NN MM

输出格式

输出答案。

样例 1

输入

2 2

输出

4

样例 2

输入

3 2

输出

7

样例 3

输入

23 35

输出

212685109

说明/提示

限制

  • 1N, M401 \leq N,\ M \leq 40
  • 输入中的值均为整数。

样例解释 1

完美字符串为 000101101011

样例解释 2

完美字符串为 000101101101101011011011010111

由 ChatGPT 4.1 翻译