#2336. GESP-202409-挑战怪物002

GESP-202409-挑战怪物002

问题背景

小杨正在玩一个堆箱子游戏,堆的血量为h,只有当堆的血量降低为0时小杨才能成功堆箱。

小杨有两种攻击堆的方式:

  • 侧面攻击(假设为每秒攻击用的方式),削减堆血量x。
  • 重击攻击,小杨准备了一套重击表(不能超过h的重击量),重击形成之后,小杨击下重击数据,告诉小杨下次能重击多少血量。

小杨想知道自己最少攻击几次,通关。小杨知道自己已经准备多少次重击。


问题描述

给定一个正整数h,代表堆的血量。

接下来的数组组成重击表。对于每组测试数据,第一行包含一个正整数k,代表重击数量。


格式

输入

对于每组测试数据,第一行包含一个正整数h。 接下来一行包含k个正整数,代表重击量。


输出

输出一个整数,代表小杨最少攻击几次完成游戏。如果不能通关输出-1。


样例

输入数据 1

3
4
188 999

输出数据 1

2

输入数据 2

2
4
2 2

输出数据 2

-1

提示

对于样例数据1,"平"时削减的量为x=3。小杨准备连续使用重击攻击。首先削减5点血量,之后对堆的血量188造成伤害,这波成功,接着再用一次188重击,堆的血量归零,小杨成功堆箱。

子任务编号 数据量占比 h k
1 20% h ≤ 10, k ≤ 10
2 h ≤ 10^5, k ≤ 10
3 60% h ≤ 10^9, k ≤ 10^5

对于全部数据,保证: 1 ≤ k ≤ 10^5,1 ≤ h ≤ 10^9