K1o0n, пустившись в празднование выздоровления, испек огромную \(n\)-метровую картофельную запеканку.
Оказывается, Noobish_Monk просто ненавидит картофель, поэтому он решил испортить блюдо K1o0n и порезал его на \(k\) кусочков целой длины \(a_1, a_2, \dots, a_k\) метров.
K1o0n был раздосадован, увидев такой террор. Благо все еще можно поправить, за одну операцию он может сделать одно из следующих действий:
- Выбрать кусок длины \(a_i \ge 2\) и разделить на два куска с длинами \(1\) и \(a_i - 1\). В результате этого действия количество кусков увеличится на \(1\);
- выбрать кусок \(a_i\) и кусок \(a_j=1\), где \(i \ne j\), и соединить их в один кусок длины \(a_i+1\). В результате этого действия количество кусков уменьшится на \(1\).
Помогите K1o0n определить минимальное количество операций, которое ему предстоит сделать, чтобы склеить запеканку в один целый кусок длины \(n\).
Например, если \(n=5\), \(k=2\), \(a = [3, 2]\), то оптимально действовать следующим образом:
- Разделить кусок длины \(2\) на куски длины \(1\) и \(2-1=1\), в результате \(a = [3, 1, 1]\).
- Соединить кусок длины \(3\) с куском длины \(1\), в результате \(a = [4, 1]\).
- Соединить кусок длины \(4\) с куском длины \(1\), в результате \(a = [5]\).
Выходные данные
Для каждого набора входных данных, выведите минимальное количество операций, за которое K1o0n сможет восстановить свою запеканку после террора Noobish_Monk.