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 $ は相異なる。