AT_oupc2023_day1_c Caesar Cipher
Description
シーザー暗号は $ 3 $ 文字シフトが一般的ですが、ここでは $ 0 \leq k < 26 $ の任意の鍵 $ k $ の数だけシフトするものとします。
平文は英小文字からなり、英小文字の範囲でシフトするものとします。
シーザー暗号の詳しい説明 暗号化する前の文を平文、暗号化した文を暗号文と言います。暗号文を平文に戻すことを復号と言います。
鍵を $ k $ ( $ 0 \leq k < 26 $ ) とします。暗号化するときは、各文字を $ k $ 個次の文字に変更します。ただし、`z` の次の文字は `a` です。
例として、鍵が $ 2 $ のときを考えます。平文 `ayz` を暗号化すると `cab` となります。
$ N $ 個の平文の候補があります。 $ i $ 個目の候補は $ S_i $ で、これらの文字数はすべて $ M $ です。
$ Q $ 個の暗号文が与えられるので復号してください。 $ j $ 個目の暗号文は $ T_j $ で、平文の候補のうち一つをシーザー暗号を用いて暗号化したものです。それぞれの暗号文は独立に選ばれた鍵を使って、暗号化されています。
平文の候補は暗号化したときに必ず特定できるように定まっています。つまり、 $ S_a $ と $ S_b $ ( $ a \ne b $ ) をそれぞれ任意の鍵 $ k_a, k_b $ で暗号化したときの暗号文が一致するようなケースはありません。
Input Format
入力は以下の形式で標準入力から与えられます。
> $ N $ $ M $ $ S_1 $ $ S_2 $ $ \vdots $ $ S_N $ $ Q $ $ T_1 $ $ T_2 $ $ \vdots $ $ T_Q $
Output Format
$ Q $ 行出力してください。
$ j $ 行目には、 $ j $ 個目の暗号文 $ T_j $ を復号したもの出力してください。
Explanation/Hint
### Sample Explanation 1
鍵を $ 2 $ として `ayz` を暗号化すると `cab` となります。
鍵を $ 25 $ として `bbb` を暗号化すると `aaa` となります。
### Constraints
- $ 1 \leq N \leq 200{,}000 $
- $ 1 \leq M \leq 200{,}000 $
- $ 1 \leq Q \leq 200{,}000 $
- $ M \max (N, Q) \leq 200{,}000 $
- $ N, M, Q $ は整数
- $ S_i, T_j $ は英小文字からなる長さ $ M $ の文字列
- 平文の候補は暗号化したときに必ず特定できる
- $ T_j $ は平文の候補のうち一つをシーザー暗号を用いて暗号化したもの