101 - ZOJ Monthly, December 2010 - A
Doraemon is fighting with n enemies.
Doraemon has two properties in this battle, HP and SP. HP is the health point of Doraemon with initial value lh. If Doraemon's HP decreased to 0 or lower, Doraemon will lose the battle. SP is a property for using Doraemon's skill with initial value 0, which will be described later. HP has an upper bound lh (its initial value) and SP has an upper bound ls.
Doraemon and his enemies take turns to act. Doraemon acts before his enemies in each turn.
In each turn Doraemon can choose one of the following actions:
Enemies will attack after Doraemon's action. Each enemy will cause one point damage to Doraemon. In the end of each turn, Doraemon get his SP increased by e mod 3 where e is the number of remaining enemies.
Now Doraemon wants to know the minimum number of turns he can kill all enemies.
Input contains multiple cases, process to the end of input.
Each case contains two lines. The first line has three integers, lh (1 ≤ lh ≤ 250), ls (1 ≤ ls ≤ 100) and n. (1 ≤ n ≤ 40)
The following line describes sequence D mentioned in Doraemon's skill. The line contains ls integers, the ith integer refers to D[i] (1 ≤ D[i] ≤ 10).
For each case, output the minimum number of turns needed in a single line. If Doraemon will always lose the battle, print "HELP!" instead.
5 2 4 2 3
Author: WAN, Xinyi
Contest: ZOJ Monthly, December 2010