AT_abc344_d [ABC344D] String Bags
Description
[problemUrl]: https://atcoder.jp/contests/abc344/tasks/abc344_d
あなたは最初、空文字列 $ S $ を持っています。
さらに、文字列がいくつか入った袋 $ 1,2,\dots,N $ があります。
袋 $ i $ には $ A_i $ 個の文字列 $ S_{i,1},S_{i,2},\dots,S_{i,A_i} $ が入っています。
これから、以下の手順を $ i=1,2,\dots,N $ について繰り返します。
- 以下のふたつの行動のうち、どちらかを選択して行う。
- $ 1 $ 円を支払い、袋 $ i $ からちょうどひとつの文字列を選択して $ S $ の末尾に連結する。
- 何もしない。
文字列 $ T $ が与えられるとき、最終的に $ S $ と $ T $ を一致させるために必要な最小の金額を求めてください。
但し、どのようにしても最終的な $ S $ を $ T $ に一致させることができない場合、 `-1` と出力してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ T $ $ N $ $ A_1 $ $ S_{1,1} $ $ S_{1,2} $ $ \dots $ $ S_{1,A_1} $ $ A_2 $ $ S_{2,1} $ $ S_{2,2} $ $ \dots $ $ S_{2,A_2} $ $ \vdots $ $ A_N $ $ S_{N,1} $ $ S_{N,2} $ $ \dots $ $ S_{N,A_N} $
Output Format
答えを整数として出力せよ。
Explanation/Hint
### 制約
- $ T $ は長さ $ 1 $ 以上 $ 100 $ 以下の英小文字からなる文字列
- $ N $ は $ 1 $ 以上 $ 100 $ 以下の整数
- $ A_i $ は $ 1 $ 以上 $ 10 $ 以下の整数
- $ S_{i,j} $ は長さ $ 1 $ 以上 $ 10 $ 以下の英小文字からなる文字列
### Sample Explanation 1
例えば、以下のようにすると $ 2 $ 円で最終的な $ S $ と $ T $ を一致させることができ、これが必要な金額の最低値であることが示せます。 - $ i=1 $ について、袋 $ 1 $ から `abc` を選択し $ S $ の末尾に連結する。 $ S= $ `abc` となる。 - $ i=2 $ について、何もしない。 - $ i=3 $ について、袋 $ 3 $ から `de` を選択し $ S $ の末尾に連結する。 $ S= $ `abcde` となる。
### Sample Explanation 2
どのようにしても最終的な $ S $ と $ T $ を一致させることができないので、 `-1` と出力してください。