Олимпиадный тренинг

Задача . F. Финальный босс


Вы сталкиваетесь с финальным боссом в своей любимой видеоигре. У босса \(h\) здоровья. У вашего персонажа есть \(n\) атак, \(i\)-я атака наносит \(a_i\) урона боссу, но имеет перезарядку \(c_i\) ходов, что означает, что вы сможете использовать эту атаку в следующий раз в ход \(x + c_i\), если ваш текущий ход \(x\). Каждый ход вы можете использовать сразу все атаки, которые сейчас не находятся в режиме перезарядки. Если все атаки находятся в режиме перезарядки, вы ничего не делаете в этот ход и переходите к следующему.

Изначально все атаки не находятся в режиме перезарядки. Сколько ходов вам понадобится, чтобы победить босса? Босс будет побежден, когда его здоровье станет \(0\) или меньше.

Входные данные

Первая строка содержит \(t\) (\(1 \leq t \leq 10^4\))  – количество наборов входных данных.

Первая строка каждого набора содержит два целых числа \(h\) и \(n\) (\(1 \leq h, n \leq 2 \cdot 10^5\)) – здоровье босса и количество ваших атак.

Следующая строка каждого набора содержит \(n\) целых чисел \(a_1, a_2, ..., a_n\) (\(1 \leq a_i \leq 2 \cdot 10^5\)) – урон ваших атак.

Следующая строка каждого набора содержит \(n\) целых чисел \(c_1, c_2, ..., c_n\) (\(1 \leq c_i \leq 2 \cdot 10^5\)) – перезарядка ваших атак.

Гарантируется, что сумма \(h\) и \(n\) по всем наборам входных данных не превышает \(2 \cdot 10^5\).

Выходные данные

Для каждого набора входных данных выведите целое число, минимальное количество ходов, необходимое для победы над боссом.

Примечание

В первом примере вы можете использовать атаки \(1\) и \(2\) на первом ходу, нанеся в общей сложности \(3\) урона и убив босса.

Во втором примере вы можете победить босса за \(3\) хода, используя следующие атаки:

Ход \(1\): Используйте атаки \(1\) и \(2\), нанеся \(3\) урона боссу. У босса осталось \(2\) здоровья.

Ход \(2\): Используйте атаку \(2\), нанеся \(1\) урон боссу. У босса осталось \(1\) здоровья.

Ход \(3\): Используйте атаку \(1\), нанеся \(2\) урона боссу. У босса осталось \(-1\) здоровья. Поскольку его здоровье меньше или равно \(0\), вы побеждаете босса.

В шестом примере: не забудьте использовать 64-битный целочисленный тип, так как ответ может быть большим.


Примеры
Входные данныеВыходные данные
1 8
3 2
2 1
2 1
5 2
2 1
2 1
50 3
5 6 7
5 6 7
50 3
2 2 2
3 3 3
90000 2
200000 200000
1 1
100000 1
1
200000
6 7
3 2 3 2 3 1 2
6 5 9 5 10 7 7
21 6
1 1 1 1 1 1
5 5 8 10 7 6
1
3
15
25
1
19999800001
1
21

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя