SZTG-L-CF788C. The Great Mixing

提交1 通过1
通过率100%
时间限制1000ms
内存限制250MiB

题目描述

题目描述

Sasha 和 Kolya 决定再次用可乐把自己灌醉。这次他们有 kk 种可乐,第 ii 种的可乐二氧化碳浓度为 ai1000\frac{a_i}{1000}。今天,在温哥华 Sergiy 的派对上,他们决定调一杯二氧化碳浓度为 n1000\frac{n}{1000} 的可乐。饮料必须美味,因此每种可乐类型在杯中只能加入整数升(某些类型可以不加入)。此外,他们希望杯中的可乐总体积最小。

二氧化碳浓度的定义是可乐中二氧化碳的体积除以可乐的总体积。当混合两种可乐时,二氧化碳的总体积相加,可乐的总体积也相加。

请帮助他们找到制备二氧化碳浓度为 n1000\frac{n}{1000} 的可乐所需的最小自然数升数。假设朋友们每种可乐类型的供应是无限的。

输入格式

第一行包含两个整数 n,kn,k,表示朋友们想要的二氧化碳浓度和可乐类型的数量。

第二行包含 kk 个整数 a1,a2,…,aka_1, a_2,\dots, a_k,表示每种可乐类型的二氧化碳浓度。某些可乐类型的浓度可能相同。

输出格式

输出制备二氧化碳浓度为 n1000\frac{n}{1000} 的可乐所需的最小自然数升数。如果不可能,则输出 −1-1。

400 4
100 300 450 500
2
50 2
100 25
3

说明 / 提示

在第一个示例中,我们可以通过混合 1 升 3001000\frac{300}{1000} 和 1 升 5001000\frac{500}{1000} 的可乐来达到浓度 4001000\frac{400}{1000}:300+5001000+1000=4001000\frac{300+500}{1000+1000} = \frac{400}{1000}。

在第二个示例中,我们可以通过混合 2 升 251000\frac{25}{1000} 和 1 升 1001000\frac{100}{1000} 的可乐来达到浓度 501000\frac{50}{1000}:25+25+1003⋅1000=501000\frac{25+25+100}{3 \cdot 1000} = \frac{50}{1000}。

400 1
400
1

数据范围

(0≤n≤10000 \leq n \leq 1000,1≤k≤1061 \leq k \leq 10^6)

(0≤ai≤10000 \leq a_i \leq 1000)