Пошта

Во главната пошта во Скопје, има голем број на пакети кои во моментов се распоредени на G позиции (купчиња), со (можеби) различен број на пакети на секоја позиција. За секоја од овие позиции, познат ни е бројот на пакети на неа.

Сите пакети треба да се достават до примателите. Во поштата, која има огромен број на вработени, се спроведува следниот процес. До секоја позиција се праќа по еден вработен и тој добива една од следните 2 задачи:

    1) Поделба на купче пакети на два дела: Земи дел (произволен број) пакети од купчето и однеси ги на нова позиција (значи се креира уште една нова позиција со земените пакети на неа), или

    2) Достава на пакет: Земи еден од пакетите и достави го до примателот.

Се знае дека овие задачи се завршуваат за еден час, а потоа постапката се повторува. Значи, следниот час пак се пушта по еден вработен до секоја од позициите (и на старите на кои се уште има пакети, и на новокреираните), итн.

Вработените во поштата може да ги извршуваат и двете задачи ама не ја сакаат задачата 1. Затоа шефот смее вкупно само X пати при процесирање на пакетите да ја зададе задачата 1, за да не предизвика штрајк.

Напишете програма која ќе пресмета колку најмалку часови се потребни за да се достават сите пакети доколку смееме да направиме најмногу X поделби на пакети (X пати да ја искористиме задачата 1)?



Влез

Во првиот ред се запишани два цели броја G (1 <= G <= 50) и X (0 <= X <= 1000000000).

Во вториот ред се запишани G цели броеви Pi (1 <= Pi <= 1000000000), кои го означуваат иницијалниот број на пакети на секоја позиција.

Забелешка: Во тест случаи кои носат најмалку 15% од поените, ќе важи (1 <= G, Pi <= 8).
Во други тест случаи кои носат најмалку 10% од поените, ќе важи X=0.
За дополнителни 15% од поените, ќе важи X <= 3.



Излез

Отпечатете го бараниот минимален број на часови.



Ограничувања

Временско ограничување: 100 milliseconds
Мемориско ограничување: 64 megabytes



Примери


влез
3 6
2 2 8
излез
4


влез
3 1
2 2 8


излез
5


Објаснување за првиот пример: Бидејќи ни е дозволено да направиме 6 поделби, можеме во првиот чекор да ги поделиме сите купчиња на половина, по што ќе добиеме {1, 1, 1, 1, 4, 4}. Во вториот чекор, за првите четири купчиња можеме да го однесеме пакетот, додека за последните две купчиња можеме да направиме поделба. Така, ќе имаме четири купчиња {2, 2, 2, 2}, и можеме во третиот чекор од секое купче да однесеме по еден пакет. Понатаму, имаме {1, 1, 1, 1} и во следниот (четвртиот) чекор можеме пак да однесеме по еден пакет, па процесот е завршен. (вкупно времетраење: 4 часа). Забележете дека не мора да се направат точно X поделби, туку може и помалку (во овој случај X=6, но ние направивме само 5 поделби).

Објаснување за вториот пример: Бидејќи сме ограничени на X=1 поделба, можеме во првиот чекор да однесеме по еден пакет од првите две купчиња, и да го поделиме третото купче – по што ќе добиеме {1, 1, 4, 4}. Во вториот чекор, можеме да однесеме по еден пакет од секое купче, по што ќе добиеме {3, 3}. Во третиот чекор, исто носиме по еден пакет, по што имаме {2, 2}, во четвртиот носиме по еден пакет по што имаме {1, 1} и во петтиот носиме по еден пакет, по што процесот е завршен. (вкупно времетраење: 5 часа).



 Submit your code