AT_tenka1_2014_qualA_c 天下一文字列集合
Description
[problemUrl]: https://atcoder.jp/contests/tenka1-2014-quala/tasks/tenka1_2014_qualA_c
英小文字 (`a`~`z`) と、英小文字 $ 1 $ 文字と一致するワイルドカード (`*`) からなる $ m $ 文字の文字列のパターンが $ n $ 個与えられる。
この文字列のパターンは、 $ m $ 文字の英小文字からなる文字列の集合 $ X $ のいずれかの要素に一致するようにように作られたものである。
集合 $ X $ の要素数の最小値を求めよ、ダイキ君。
Input Format
入力は、以下の形式で標準入力から与えられる。
> $ n $ $ m $ $ P1 $ $ P2 $ : $ Pn $
$ 1 $ 行目に文字列のパターンの数を表す整数 $ n $( $ 1\ ≦\ n\ ≦\ 14 $ ) と文字列の長さを表す整数 $ m $( $ 1\ ≦\ m\ ≦\ 100000 $ ) が与えられる。 その後、長さ $ m $ の文字列のパターン $ P_i $ が $ n $ 行で与えられる。
Output Format
集合 $ X $ としてありうる要素数のうち最小の値を1行で出力せよ。 なお、行の終端には改行が必要である。
Explanation/Hint
### 部分点
- $ 1\ ≦\ n\ ≦\ 4 $, $ 1\ ≦\ m\ ≦\ 4 $ の全てのテストケースに正解した場合、部分点として20点が与えられる
- $ 1\ ≦\ n\ ≦\ 14 $, $ 1\ ≦\ m\ ≦\ 10 $ の全てのテストケースに正解した場合、部分点としてさらに30点が与えられる
### Sample Explanation 1
集合 $ X $ の例としては、 ``` axxb oocb ``` がありうる。