公平な 6 面サイコロを複数使うゲームをします。各サイコロの各面には記号が 1 つあります。目的はサイコロを振り、それぞれの上面の記号で有効な単語を作ることです。単語を作れなければ、サイコロを振り直して再挑戦できます。
図 K.1:入力例 1 に対応する有効な単語を作る 5 個のサイコロ。
5 個のサイコロがあり、1 個には A、B、C、D、E、P(略して ABCDEP)、残りにはそれぞれ AEHOXU、AISOLR、ABCDEF、ABCSCC が書かれているとします。最初に振ると、各サイコロの上面は順に P、X、R、E、S でした。これらを並べ替えて有効な単語を作ることはできないので、P、S、E を残してほかのサイコロを振り直し、PARSE、PAUSE、PHASE、POISE、PROSE、PULSE、PURSE などを目指します。2 個のサイコロは E と A になり、5 文字は P、E、A、E、S となります。まだ有効な単語を思いつかないので、4 文字を残し、最後のサイコロだけを振り直します。このサイコロは 3 面に C があります。これにより、図 K.1 のように最終的に有効な単語 PEACE を作れる確率は 50% になります。
サイコロを振ると、どの面も等確率で上になります。最適な戦略を用いた場合、有効な単語を作るまでに必要な投擲回数の期待値はいくつですか?
入力
最初の行には 2 つの数 $d$ と $w$ があり、$d$($1 \le d \le 6$)はサイコロの個数、$w$($1 \le w \le 2 \cdot 10^5$)は辞書内の有効な単語数です。続く $d$ 行には、それぞれサイコロの各面に対応する 6 個の記号があります。最後の $w$ 行には辞書内の相異なる $w$ 個の有効な単語があります。各単語はちょうど $d$ 個の記号からなります。
入力のすべての記号は英大文字(A–Z)または数字(0–9)です。
出力
有効な単語を作れる場合、最適な戦略で有効な単語を作るまでに必要な投擲回数の期待値を出力してください。それ以外の場合は impossible を出力してください。答えの絶対誤差または相対誤差は $10^{-6}$ 以下でなければなりません。
入出力例
入力 1
5 8 ABCDEP AEHOXU AISOLR ABCDEF ABCSCC PARSE PAUSE PHASE POISE PROSE PULSE PURSE PEACE
出力 1
9.677887141
入力 2
2 1 AAAAAA BBBBBB AB
出力 2
1.0
入力 3
3 1 123456 123456 123456 666
出力 3
10.555444555
入力 4
2 1 ABCDEF GHI234 AB
出力 4
impossible