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 ``` がありうる。