На тренировку по подготовке к соревнованиям по программированию пришли *n* команд. Тренер для каждой команды подобрал тренировку, комплект задач для *i*-й команды занимает *a*<sub class="lower-index">*i*</sub> страниц. В распоряжении тренера есть *x* листов бумаги, у которых обе стороны чистые, и *y* листов, у которых только одна сторона чистая. При печати условия на листе первого типа можно напечатать две страницы из условий задач, а при печати на листе второго типа — только одну. Конечно, на листе нельзя печатать условия из двух разных комплектов задач. Обратите внимание, что при использовании листов, у которых обе стороны чистые, не обязательно печатать условие на обеих сторонах, одна из них может остаться чистой.

Вам предстоит определить максимальное количество команд, которым тренер сможет напечатать комплекты задач целиком.
В первой строке входных данных следуют три целых числа *n*, *x* и *y* (1 ≤ *n* ≤ 200 000, 0 ≤ *x*, *y* ≤ 10<sup class="upper-index">9</sup>) — количество команд, количество листов бумаги с двумя чистыми сторонами и количество листов бумаги с одной чистой стороной.

Во второй строке входных данных следует последовательность из *n* целых чисел *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> (1 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 10 000), где *i*-е число равно количеству страниц в комплекте задач для *i*-й команды.
В первом тестовом примере можно напечатать оба комплекта задач. Один из возможных ответов — напечатать весь первый комплект задач на листах с одной чистой стороной (после этого останется 3 листа с двумя чистыми сторонами и 1 лист с одной чистой стороной), а второй комплект напечатать на трех листах с двумя чистыми сторонами.

Во втором тестовом примере можно напечатать оба комплекта задач. Один из возможных ответов — напечатать первый комплект задач на двух листах с двумя чистыми сторонами (после этого останется 1 лист с двумя чистыми сторонами и 5 листов с одной чистой стороной), а второй комплект напечатать на одном листе с двумя чистыми сторонами и на пяти листах с одной чистой стороной. Таким образом, тренер использует все листы для печати.

В третьем тестовом примере можно напечатать только один комплект задач (любой из трёх 11-страничных). Для печати 11-страничного комплекта задач будет израсходована вся бумага.
2 3 5
4 6
2
2 3 5
4 7
2
6 3 5
12 11 12 11 12 11
1
1 4 3
12
0
10 1 17
3 1 1 2 1 3 4 4 1 4
8
3 6 3
2 5 9
2
7 26 8
5 11 8 10 12 12 3
6
11 5 85
19 20 6 7 6 2 1 5 8 15 6
11
7 7 2
5 2 4 2 4 1 1
6
8 5 10
1 7 2 5 2 1 6 5
6
10 27 34
11 8 11 5 14 1 12 10 12 6
9
4 2 2
1 2 3 1
3
5 1 45
7 14 15 7 7
4
9 7 50
10 9 10 10 8 3 5 10 2
8
5 0 0
100 100 100 200 301
0
5 1000000000 1000000000
100 200 300 400 501
5
1 1 0
1
1
1 1 0
3
0
1 0 0
10000
0
1 0 1
1
1
1 1 0
2
1
1 0 0
1
0
1 0 1
2
0
5 4 1
1 2 1 1 1
5
20 5 0
9 4 1 2 1 1 4 4 9 1 9 3 8 1 8 9 4 1 7 4
5
100 1019 35
34 50 60 47 49 49 59 60 37 51 3 86 93 33 78 31 75 87 26 74 32 30 52 57 44 10 33 52 78 16 36 77 53 49 98 82 93 85 16 86 19 57 17 24 73 93 37 46 27 87 35 76 33 91 96 55 34 65 97 66 7 30 45 68 18 51 77 43 99 76 35 47 6 1 83 49 67 85 89 17 20 7 49 33 43 59 53 71 86 71 3 47 65 59 40 34 35 44 46 64
59
2 1 0
1 1
1
2 3 0
3 3
1
1 1000000000 1000000000
1
1
3 2 0
1 1 1
2
2 2 0
1 3
1
1 3 0
3
1
2 2 0
1 1
2
5 1 0
1 1 1 1 1
1
4 2 0
1 1 1 1
2
1 2 0
3
1
4 1 0
1 1 1 1
1
2 2 0
3 1
1
6 1000000000 1000000000
12 11 12 11 12 11
6
2 3 0
5 1
1
1 3 0
5
1
2 1000000000 1000000000
10000 1000
2
5 1000000000 1000000000
1 2 3 4 5
5
2 1 0
2 2
1
2 1000000000 1000000000
10000 10000
2
2 3 0
3 4
1
3 4 0
3 3 3
2
4 3 1
3 1 1 1
3
1 2 0
1
1
5 2 0
1 1 1 1 1
2
2 1000000000 1000000000
1 1
2
3 1 0
1 1 1
1
#include <iostream>
#include <algorithm>
using namespace std;
int n, x, y, cnt;
int arr[200005];
int main()
{
    cin >> n >> x >> y;
    for (int i = 0; i < n; ++i)
    {
        cin >> arr[i];
    }
    sort(arr, arr + n);
    for (int i = 0; i < n; ++i)
    {
        if (x < 0 || y < 0)
        {
            cout << cnt - 1;
            return 0;
        }
        cnt++;
        if (x >= arr[i] >> 1) x -= arr[i] >> 1;
        else
        {
            arr[i] -= x * 2;
            x = 0;
            y -= arr[i];
            arr[i] = 0;
        }
        if (arr[i] % 2 == 1)
        {
            if (y != 0) y--;
            else x--;
        }
    }
    cout << cnt;
}
