1257: E-⼩y拼楼梯

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:27 Solved:0

Description



⾃从⼩y上次学会计算有多少种爬楼梯的⽅式后,又枯燥了起来。现在她⾃⼰拼接⾃⼰想要的楼梯,于是她就开始⾃⼰脑补拼接楼梯了。她在想,⾃⼰拥有⽆限个分别为 $a_1, a_2, a_3 ……a_k$($a_i < a_j$,其中i < j)   阶的⼩楼梯,她想拼出⼀个 N阶的楼梯最少需要多少块?

例如⼩y现在有分别为 1,2,4阶的⼩楼梯,想要拼出 10 阶的楼梯⾄少需要 3 块⼩楼梯,分别是 4 阶的⼩楼梯使⽤ 2 块,2  阶的⼩楼梯使⽤ 1  块,即 4+4+2=10

但是⼩y现在想破了脑袋也没想到怎么计算最少值,你能帮帮他吗?
如果⽆法拼出 N 阶则输出 "-_- !!"

Input

第⼀⾏包含两个正整数 N, k表⽰⼩y最要拼接的楼梯阶数,k 表⽰⼩楼梯的个数。

第⼆⾏包含 k个正整数$a_1, a_2, a_3 ……a_k$($a_i < a_j$,其中i < j),表⽰第 i 个⼩楼梯的阶数。



Output

如果能拼接出来,则输出最少需要的⼩楼梯块数。

否则输出 "-_-!!" ,(不输出引号)。

Sample Input Copy

10 3
1 2 4

Sample Output Copy

3

HINT

对于30%的数据:

$1e9 \leq n\leq1e16$,且这个范围的数据对于所有$a_i (i>1) $,都有 $ai$ 是 $a_{i-1}$ 的倍数(即 $a_i$ 能被 $a_{i-1}$ 整除)。

对于另外 70% 的数据中:
⼀半(35%)的数据: N≤1000,k≤5
全部(70%)的数据: N≤100000,k≤20

对于所有数据 $a_i$≤N。