#abc298d. [abc298_d]Writing a Numeral

[abc298_d]Writing a Numeral

题目描述

我们有一个字符串 SS。最初,S=S= 1
按顺序处理 QQ 个查询,格式如下所示。

  • 1 x:在 SS 的末尾添加数字 xx
  • 2:删除 SS 的开头数字。
  • 3:以十进制形式打印由 SS 表示的数字(对 998244353998244353 取模)。

约束条件

  • 1leqQleq6times1051 \\leq Q \\leq 6 \\times 10^5
  • 对于第一种查询,xin1,2,3,4,5,6,7,8,9x \\in \\{1,2,3,4,5,6,7,8,9\\}
  • 只有当 SS 的长度大于等于 22 时,才会给出第二种格式的查询。
  • 至少存在一个第三种格式的查询。

输入

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

QQ mathrmquery1\\mathrm{query}_1 vdots\\vdots mathrmqueryQ\\mathrm{query}_Q

这里,mathrmqueryi\\mathrm{query}_i 表示第 ii 个查询,其格式为以下之一:

11 xx 22 33

输出

打印 qq 行,其中 qq 是第三种查询的数量。第 ii(1leqileqq)(1 \\leq i \\leq q) 应与第三种查询的第 ii 行相对应。

示例输入 1

3
3
1 2
3

示例输出 1

1
12

在第一个查询中,SS1,所以你应该打印 11998244353998244353 取模,即 11
在第二个查询中,SS 变为 12
在第三个查询中,SS12,所以你应该打印 1212998244353998244353 取模,即 1212

示例输入 2

3
1 5
2
3

示例输出 2

5

示例输入 3

11
1 9
1 9
1 8
1 2
1 4
1 4
1 3
1 5
1 3
2
3

示例输出 3

0

请确保对数字取模 998244353998244353