IV Olimpiada Informatyczna 1996/97

Zadanie: KAJ
Autor: Wojciech Rytter
Kajaki

Zawody III stopnia  
Plik źródłowy: KAJ.??? (np. pas, c, cpp)
Plik wykonywalny: KAJ.exe
Plik wejściowy: KAJ.in
Plik wyjściowy: KAJ.out

Organizując spływ, wypożyczamy na przystani kajaki. Wszystkie kajaki są jednakowe. W jednym kajaku mogą popłynąć co najwyżej dwie osoby, a suma ich wag nie może przekroczyć ustalonego maksymalnego obciążenia. Aby zapłacić jak najmniej, szukamy sposobu rozmieszczenia wszystkich uczestników spływu w minimalnej liczbie kajaków.

Zadanie

Napisz program, który:

Wejście

W pierwszym wierszu pliku tekstowego KAJ.IN jest zapisana jedna liczba całkowita w, spełniająca nierówności 80<=w<=200. Jest to maksymalne obciążenie kajaka.

W drugim wierszu jest zapisana jedna liczba całkowita n, spełniająca nierówności 1 <= n <= 30000. Jest to liczba uczestników spływu.

W każdym z kolejnych n wierszy jest zapisana jedna liczba całkowita z przedziału [5..w]. Jest to waga jednego uczestnika spływu.

Wyjście

W pierwszym wierszu pliku tekstowego KAJ.OUT należy zapisać jedną liczbę całkowitą — minimalną liczbę kajaków, jakie trzeba wynająć.

Przykład
Dla pliku tekstowego KAJ.IN:

100
9
90
20
20
30
50
60
70
80
90
poprawnym rozwiązaniem jest plik tekstowy KAJ.OUT
6

Twój program powinien szukać pliku KAJ.IN w katalogu bieżącym i tworzyć plik KAJ.OUT również w bieżącym katalogu. Plik zawierający napisany przez Ciebie program w postaci źródłowej powinien mieć nazwę KAJ.???, gdzie zamiast ??? należy wpisać co najwyżej trzyliterowy skrót nazwy użytego języka programowania. Ten sam program w postaci wykonalnej powinien być zapisany w pliku KAJ.EXE.