A. Бумажная работа
ограничение по времени на тест
2 seconds
ограничение по памяти на тест
256 megabytes
ввод
стандартный ввод
вывод
стандартный вывод

Прошло уже n дней как Поликарп работает в аналитическом отделе компании «Рога и Копыта». Теперь ему предстоит предоставить серию отчетов о работе компании за последние n дней. Известно, что основная информация в дневном отчете — это величина ai, прибыть компании в i-ый день. Если ai отрицательно — это означает, что компания понесла убытки в i-ый день.

Поликарп должен объединить дневные отчеты в папки. Каждая папка должна включать в себя данные по работе компании за несколько подряд идущих дней. Конечно, информация по каждому из n дней должна находиться ровно в одной папке. Таким образом, информацию по нескольким первым дням он объединяет в первую папку. Информацию по нескольким следующим дням — во вторую папку, и так далее.

Известно, что главный начальник читает по одной папке с дневными отчетами в день. Если в одной папке он найдет три или более отчета за дни, в которые компания понесла убытки (ai < 0), он выйдет из себя и гнев его будет страшен.

Поэтому Поликарп хочет подготовить папки так, чтобы никакая из них не содержала информацию по трем или более убыточным дням, а количество папок было минимально.

Напишите программу, которая по последовательности ai выведет минимальное количество папок.

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

В первой строке записано целое число n (1 ≤ n ≤ 100), n — количество дней. Вторая строка содержит последовательность целых чисел a1, a2, ..., an (|ai| ≤ 100), где ai обозначает прибыль компании в i-ый день. Допустимо, что дней с отрицательными ai может и не быть вообще.

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

Выведите целое число k — искомое минимальное количество папок. Во вторую строку выведите последовательность положительных целых чисел b1, b2, ..., bk, где bj — количество дневных отчетов в j-ой папке.

Если способов разбить отчеты по k дням несколько, выведите любой из них.

Примеры
Входные данные
11
1 2 3 -4 -5 -6 5 -5 -6 -7 6
Выходные данные
3
5 3 3
Входные данные
5
0 -1 100 -1 0
Выходные данные
1
5
Примечание

Способ разделить отчеты из первого примера на три папки:

1 2 3 -4 -5 | -6 5 -5 | -6 -7 6

Во втором примере все пять отчетов можно объединить в одну папку.