AT_past202209_g Wildcards

Description

$ S $ を英小文字のみからなる文字列、 $ T $ を英小文字および `?` のみからなる文字列とします。 $ T $ に含まれる `?` をそれぞれ適切な英小文字 $ 1 $ つで置き換えることで、 $ T $ を $ S $ に一致させることができるとき、「 $ S $ は $ T $ から作れる」と言います。 例えば、`a??d` からは `abcd` や `addd` を作れますが `bcdd` を作ることはできません。 英小文字のみからなる $ N $ 個の文字列 $ S_1, S_2, \ldots, S_N $ が入力として与えられます。 これらの長さはすべて $ L $ です。すなわち、 $ |S_1| = |S_2| = \cdots = |S_N| = L $ です。 文字列 $ T $ として、英小文字および `?` からなる長さ $ L $ の文字列であって **`?` をちょうど $ K $ 個含む**ものを任意に選びます。 「 $ S_1, S_2, \ldots, S_N $ のうち、 $ T $ から作れるものの個数」としてありえる最大値を出力してください。

Input Format

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

Output Format

答えを出力せよ。

Explanation/Hint

### Sample Explanation 1 $ T = $ `a?b?` とすると、 $ S_1 = $ `aabc`, $ S_3 = $ `abbc`, $ S_5 = $ `acba` の $ 3 $ つを $ T $ から作れます。 このとき「 $ S_1, S_2, \ldots, S_N $ のうち、 $ T $ から作れるものの個数」は $ 3 $ であり、これがあり得る最大値となります。 $ K = 2 $ より、 $ T $ は `?` をちょうど $ 2 $ 個含むように選ばれなければならないことに注意してください。 ### Sample Explanation 2 $ T = $ `????` とすると、 $ S_1, S_2, S_3, S_4, S_5 $ のすべてを作れます。 ### Constraints - $ 1 \leq N \leq 1000 $ - $ 1 \leq L \leq 10 $ - $ 0 \leq K \leq L $ - $ N, L, K $ は整数 - $ S_1, S_2, \ldots, S_N $ はそれぞれ英小文字のみからなる長さ $ L $ の文字列 - $ S_1, S_2, \ldots, S_N $ は相異なる。