E - Super Lucky Sequence

2 secs 1024 MB
Yourein's icon Yourein

Statement

Yourein君は夢で神に会いました。
神はMM個の相異なる0以上9以下の整数からなる集合a={a1,a2,...,aM}a = \lbrace{a_1, \hspace{0.2em} a_2, \hspace{0.2em} ..., \hspace{0.2em} a_M\rbrace}をYourein君に手渡しこう言いました。
「あなたは今日条件を満たす数列を持つと幸せになれる」

神が示した条件は以下の通りでした

  • 数列の項はすべて集合aaの要素である。
  • 数列の初項が00でない。
  • その数列は初項から末項までをつなげて10進数整数としたときにKKの倍数である。(「この条件の例は入力例1や3を参照すること」)

Yourein君は神のお告げを信じそのような数列を紙に書いて1日持ち歩くことにしました。

Yourein君は数列の長さが長いほうがより幸せになれると考えており、紙には最大でNN項の数列を書くスペースがあります。そのため、項数がNN項以下かつ条件をすべて満たす数列のうち最も長いものを紙に書こうと考えています。

Yourein君が最終的に紙に書き込んだ数列の長さを教えて下さい。
ただし、どのようにしても条件を満たす数列を作ることができない場合は-1を出力してください

Constraints

  • 1N,K3×1031 \le N, K \le 3 \times 10^3
  • 1M101 \le M \le 10
  • ai{x0x9,xZ}a_i \in \lbrace{x | 0 \le x \le 9, x \in \Z\rbrace}
  • a=M|a| = M
  • 入力はすべて整数

Input

1行目にN,K,MN, K, Mがスペースを開けて与えられる 2行目にa1,a2,... ,aMa_1, a_2, ... \ , a_Mが与えられる。

NKMN \hspace{0.5em} K \hspace{0.5em} M
a1a2aMa_1 \hspace{0.5em} a_2 \hspace{0.5em} \cdots \hspace{0.5em} a_M

Output

問題文の条件に合うような数列のうち最も項数が多いものの項数を出力せよ。ただし、そのような数列を作ることができない場合は-1を出力せよ。

Examples

Example1

input1
3 13 2
1 7
output1
3

作れる数列は1,7,11,17,71,77,111,117,171,177,711,717,771,7771, 7, 11, 17, 71, 77, 111, 117, 171, 177, 711, 717, 771, 777です。 この中で13の倍数となるものとしては117117があります。
その長さは3なので3を出力します。

Example2

input2
10 6 2
1 2
output2
10

Example3

input3
7 18 1
4
output3
-1

実は4444444444444444441818の倍数です。このように求める数列が構成可能な場合でも書ききるスペースがなければ答えが1-1となることに気をつけてください。

Example4

input4
125 2 1
3
output4
-1

33をいくつ並べてもそれらはすべて33の倍数です。また11の位も偶数にはならないので、どのようにしても条件を満たす数列を構成することができません。

Submit


Go (1.21)