AT_abc324_c [ABC324C] Error Correction

Description

[problemUrl]: https://atcoder.jp/contests/abc324/tasks/abc324_c 高橋君は英小文字からなる文字列 $ T $ を青木君に向けて送りました。その結果、青木君は英小文字からなる文字列 $ T' $ を受信しました。 $ T' $ は $ T $ から一部が変更されてしまっている可能性があり、具体的には、下記の $ 4 $ つのうちのちょうど $ 1 $ つが成り立つことがわかっています。 - $ T' $ は、$ T $ と等しい。 - $ T' $ は、$ T $ のいずれか $ 1 $ つの位置(先頭と末尾も含む)に英小文字を $ 1 $ つ挿入して得られる文字列である。 - $ T' $ は、$ T $ からある $ 1 $ 文字を削除して得られる文字列である。 - $ T' $ は、$ T $ のある $ 1 $ 文字を別の英小文字に変更して得られる文字列である。 青木君が受信した文字列 $ T' $ と、英小文字からなる $ N $ 個の文字列 $ S_1,\ S_2,\ \ldots,\ S_N $ が入力として与えられるので、 $ S_1,\ S_2,\ \ldots,\ S_N $ のうち、高橋君が送った文字列 $ T $ と等しい可能性があるものをすべて求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ T' $ $ S_1 $ $ S_2 $ $ \vdots $ $ S_N $

Output Format

$ S_1,\ S_2,\ \ldots,\ S_N $ のうち $ T $ と等しい可能性があるものすべての添字を**昇順に**並べた列を $ (i_1,\ i_2,\ \ldots,\ i_K) $ とする。 この列の長さ $ K $ および列自体を、下記の形式にしたがって出力せよ。 > $ K $ $ i_1 $ $ i_2 $ $ \ldots $ $ i_K $

Explanation/Hint

### 制約 - $ N $ は整数 - $ 1\ \leq\ N\ \leq\ 5\ \times\ 10^5 $ - $ S_i $ と $ T' $ は英小文字からなる長さ $ 1 $ 以上 $ 5\ \times\ 10^5 $ 以下の文字列 - $ S_1,\ S_2,\ \ldots,\ S_N $ の長さの総和は $ 5\ \times\ 10^5 $ 以下 ### Sample Explanation 1 $ S_1,\ S_2,\ \ldots,\ S_5 $ のうち、$ T $ と等しい可能性があるものは $ S_1,\ S_2,\ S_3,\ S_4 $ の $ 4 $ つであることが下記の通りわかります。 - $ S_1 $ は $ T $ と等しい可能性があります。なぜなら、$ T'\ = $ `ababc` は $ S_1\ = $ `ababc` と等しいからです。 - $ S_2 $ は $ T $ と等しい可能性があります。なぜなら、$ T'\ = $ `ababc` は $ S_2\ = $ `babc` の先頭に文字 `a` を挿入して得られる文字列だからです。 - $ S_3 $ は $ T $ と等しい可能性があります。なぜなら、$ T'\ = $ `ababc` は $ S_3\ = $ `abacbc` から $ 4 $ 文字目の `c` を削除して得られる文字列だからです。 - $ S_4 $ は $ T $ と等しい可能性があります。なぜなら、$ T'\ = $ `ababc` は $ S_4\ = $ `abdbc` の $ 3 $ 文字目の `d` を `b` に変更して得られる文字列だからです。 - $ S_5 $ は $ T $ と等しい可能性はありません。なぜなら、$ S_5\ = $ `abbac` を $ T $ としたとき、$ T'\ = $ `ababc` は問題文中の $ 4 $ つの条件をいずれも満たさないからです。