Lumpy is a bus driver. Today, the conductor is absent so Lumpy has to do the conductor's job as well. There are N creatures in the bus. Sometimes the creatures don't carry change and can't pay the exact amount of the fare. Each creature in the bus today has paid an amount
greater than his/her fare. You are given information about the extra amount paid by each creature, by an array A of size N, where Ai denotes the extra amount paid by the i-th creature, in rupees.
After the end of the trip, Lumpy noticed that he had P one rupee coins and Q two rupee coins. He wants to pay back the creatures using this money. Being a kind hearted moose, Lumpy wants to pay back as many creatures as he can. Note that Lumpy will 
not pay back the i-th creature if he can't pay the exact amount that the i-th creature requires with the coins that he possesses. 
Lumpy is busy driving the bus and doesn't want to calculate the maximum number of creatures he can satisfy - He will surely cause an accident if he tries to do so. Can you help him out with this task? 

-----Input-----
- The first line of the input contains an integer T denoting the number of test cases. The description of T test cases follows.
- For each test case, first line consists of three space separated integers N, P and Q.
- Second line consists of N space separated integers A containing N space integers, where i-th integer denotes Ai.

-----Output-----
- For each test case, output a single line containing an integer corresponding to maximum number of creatures that Lumpy can pay back.

-----Constraints-----
- 1 ≤ T ≤ 106
- 1 ≤ N ≤ 105
- 1 ≤ Ai ≤ 109
- 0 ≤ P, Q ≤ 1014
- Sum of N over all the cases does not exceed 106

-----Subtasks-----
- Subtask #1 (15 points): P = 0
- Subtask #2 (15 points): Q = 0
- Subtask #3 (70 points): Original constraints

-----Example-----
Input:3
3 3 0
1 2 2
3 2 1
1 2 1
4 5 4
2 3 4 5

Output:2
3
3

-----Explanation-----
Example 1. Lumpy has just 3 one rupee coins. 

He can pay creatures numbered {1, 2} or creatures numbered {1, 3} with these coins. Thus, answer is 2. 
Example 2. Lumpy has 2 one rupee coins and 1 two rupee coin. 

In the optimal solution, Lumpy can give the two rupee coin to creature 2 and the one rupee coins to creatures 1 and 3. Thus, answer is 3.

```python

USER_FILENAME = "<user_code>"
import sys, json, builtins
import math, heapq, bisect, itertools, functools, collections, statistics, fractions, decimal, operator, array, random, re, string, os, pathlib
try:
    import resource as _res
except Exception:
    _res = None
from collections import Counter, defaultdict, deque, OrderedDict
from functools import lru_cache, reduce
from itertools import accumulate, permutations, combinations, product
from math import gcd, ceil, floor, sqrt
from decimal import Decimal
try:
    from typing import *
except Exception:
    pass
try:
    sys.setrecursionlimit(1_000_000)
except Exception:
    pass
try:
    import site as _site
    try:
        _sys_sites = _site.getsitepackages() if hasattr(_site, "getsitepackages") else []
        for _p in _sys_sites:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
    try:
        _usp = _site.getusersitepackages()
        if isinstance(_usp, str):
            _usp = [_usp]
        for _p in _usp:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
except Exception:
    pass

ns = {"__name__": "__main__"}
for _k, _v in list(globals().items()):
    if not _k.startswith("_"):
        ns[_k] = _v
_CODE = '# cook your dish here\nt=int(input())\nwhile t>0:\n n,p,q=input().split(" ")\n n=int(n)\n p=int(p)\n q=int(q)\n l=list(map(int,input().split(" ")))\n if q==0:\n  s=0\n  count=0\n  l.sort()\n  for i in l:\n   s=s+i\n   if s>p:\n    break\n   else:\n    count=count+1\n  print(count)\n elif p==0:\n  l1=list(filter(lambda x:x%2==0,l))\n  s=0\n  count=0\n  l1.sort()\n  for i in l1:\n   s=s+i\n   if s>2*q:\n    break\n   else:\n    count=count+1\n  print(count)\n else:\n  count=0\n  s=0\n  sum=p+2*q\n  l1=list(filter(lambda x:x%2,l))\n  l2=list(filter(lambda x:x%2==0,l))\n  l1.sort()\n  l2.sort()\n  if len(l1)<=len(l2):\n   x=len(l1)\n  else:\n   x=len(l2)\n  i=0\n  j=0\n  lst=[]\n  while i+j<len(l1)+len(l2)-1:\n   if i==len(l1):\n    lst.append(l2[j])\n    j=j+1\n   if j==len(l2):\n    lst.append(l1[i])\n    i=i+1\n   if l1[i]<l2[j]:\n    if p>0:\n     lst.append(l1[i])\n     p=p-1\n     i=i+1\n    else:\n     i=i+1\n   else:\n    lst.append(l2[j])\n    j=j+1\n  for i in lst:\n   s=s+i\n   if s>sum:\n    break\n   else:\n    count=count+1\n  print(count)\n     \n    \n t=t-1'
_co = compile(_CODE, USER_FILENAME, "exec")
exec(_co, ns, ns)

```

Measured memory_bytes: 14247