BF Conversion

2 secs 1024 MB
sten's icon sten

問題文

英小文字のみからなる長さ NN の文字列 SS と正整数 KK が与えられます。

文字列 xx に対して以下のアルゴリズムにより生成される Brainfuck プログラムを f(x)f(x) で表すことにします。

  • i=1,2,,xi = 1, 2, \dots, |x| について以下を順に行う。
    • ccxix_iASCII 文字コード として、'+' を cc 回出力する。
    • '.' を出力する。
    • ixi \neq |x| ならば '>' を出力する。

f(f(f(S)))f が K 個\underbrace{f(f(\dots f(S)\dots))}_{f\ \text{が}\ K\ \text{個}} に含まれる '+', '.', '>' の個数それぞれを 998244353998244353 で割ったあまりで求めてください。

制約

  • 1N1051 \leq N \leq 10^5
  • 1K10181 \leq K \leq 10^{18}
  • SS は英小文字のみからなる長さ NN の文字列

入力

N KN\ K
SS

出力

'+', '.', '>' の順でスペース区切りに答えを出力してください。

サンプル

入力1
2 1
ab
出力1
195 2 1

"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++." には '+', '.', '>' がそれぞれ 195,2,1195, 2, 1 だけ含まれています。


入力2
10 3
helloworld
出力2
2167152 49835 49834

入力3
1 1
a
出力3
97 1 0

入力4
6 1000000000000000000
sample
出力4
847839672 167391335 167391334

Submit


Go (1.21)