A. Разбиение на команды
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

На тренировку по программированию пришли n групп студентов. В каждой группе либо один человек, которому не важно, с кем писать контест, либо два человека, которые обязательно хотят писать контест в одной команде.

Тренер решил, что для тренировки соберёт команды ровно из трёх человек. Определите максимальное количество команд из трёх человек, которые смогут написать тренировку. Возможна ситуация, когда не все группы получится распределить в команды. Группы нужно брать целиком, т. е. в группе из двух человек либо оба пишут тренировку, либо оба не пишут. Если тренер берёт на тренировку группу из двух человек, то он обязательно должен определить их в одну команду.

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

В первой строке следует целое положительно число n (2 ≤ n ≤ 2·105) — количество групп студентов.

Во второй строке следует последовательность целых чисел a1, a2, ..., an (1 ≤ ai ≤ 2), где ai равно количеству человек в i-й группе.

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

Выведите максимальное количество команд из трёх человек, которые смогут написать контест.

Примеры
Входные данные
4
1 1 2 1
Выходные данные
1
Входные данные
2
2 2
Выходные данные
0
Входные данные
7
2 2 2 1 1 1 1
Выходные данные
3
Входные данные
3
1 1 1
Выходные данные
1
Примечание

В первом примере тренер сможет набрать одну команду. Для этого он может, например, взять три группы из одного человека: группы с номерами один, два и четыре.

Во втором примере тренеру не удастся набрать ни одной команды.

В третьем примере тренер сможет собрать три команды. Например, он может сделать это так:

  • группа номер один (из двух человек) и группа номер семь (из одного человека)
  • группа номер два (из двух человек) и группа номер шесть (из одного человека)
  • группа номер три (из двух человек) и группа номер четыре (из одного человека)