#jag2017summerday1e. [jag2017summer_day1_e]ベクトル式

[jag2017summer_day1_e]ベクトル式

问题

给定以下用 BNF 表示的向量表达式 SS,请计算并输出结果。

<expr> ::= <number> | "("<expr>"*"<expr>")" | "("<vector>"*"<vector>")"
<vector> ::= "("<expr>","<expr>")" | "("<expr>"*"<vector>")" | "("<vector>"*"<expr>")"
<number> ::= <digit> | <number><digit>
<digit> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"

<expr> 表示整数(标量),<vector> 表示二维向量。在本问题中,操作符 * 的意义如下:

  • <expr><expr>:表示整数乘法。
  • <vector><vector>:表示向量内积。
  • <expr><vector>:表示向量的标量倍数。

注意,由于答案可能非常大,请将结果对 998244353998244353 取模后输出。

约束条件

  • 1S1051≤|S|≤10^5
  • SS 是由问题描述中的 BNF <expr> 表示的表达式。

输入

输入从标准输入中给出,具体格式如下:

SS

输出

输出表达式的计算结果除以 998244353998244353 的余数。


输入示例 1

((1,2)*(3,4))

输出示例 1

11

计算向量 (1,2)(1,2) 和向量 (3,4)(3,4) 的内积,结果为 13+24=111\cdot3 + 2\cdot4 = 11


输入示例 2

((((1*2),3)*4)*(((5,6)*(7,8))*(9,10)))

输出示例 2

15936

输入示例 3

0000000000099824435399824435399824435399824435399824435398

输出示例 3

98