AT_abc469_g [ABC469G] K-nacci Operations
Description
`a`, `b` からなる $ K $ 個の文字列 $ S_1, S_2, \ldots, S_K $ が与えられます。また、 $ i > K $ なる整数 $ i $ に対し、文字列 $ S_i $ を $ S_{i-1}, S_{i-2}, \ldots, S_{i-K} $ をこの順に連結した文字列として定めます。
あなたは、文字列 $ T $ に対して以下の操作を行います。
- $ |S_N| $ を $ S_N $ の長さとして、 $ j = 1, 2, \ldots, |S_N| $ に対し以下の操作を順に行う。
- $ S_N $ の $ j $ 文字目が `a` のとき、 $ T $ の先頭の文字を末尾に移動させる。
- $ S_N $ の $ j $ 文字目が `b` のとき、 $ T $ 全体を反転させる。すなわち、 $ T $ の文字の並びを逆にする。
一連の操作を終えた後の文字列 $ T $ を求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ K $ $ S_1 $ $ S_2 $ $ \vdots $ $ S_K $ $ N $ $ T $
Output Format
答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
$ S_1 = $ `a`、 $ S_2 = $ `aa`、 $ S_3 = $ `b`、 $ S_4 = $ `baaa`、 $ S_5 = $ `baaabaa` です。
操作によって文字列 $ T $ は `abc` → `cba` → `bac` → `acb` → `cba` → `abc` → `bca` → `cab` と変化するため、一連の操作を終えた後の文字列 $ T $ は `cab` となります。
### Constraints
- $ 2 \leq K \leq 100 $
- $ K $ は整数
- $ S_i $ は `a`, `b` からなる空でない文字列 $ (1 \leq i \leq K) $
- $ S_1, S_2, \ldots, S_K $ の長さの和は $ 2 \times 10^5 $ 以下
- $ 1 \leq N \leq 10^{18} $
- $ N $ は整数
- $ T $ は英小文字からなる長さ $ 1 $ 以上 $ 2 \times 10^5 $ 以下の文字列