


The first line of the input contains an integer, 'T,’ denoting the number of test cases.
The first line of each test case contains two space-separated integers, 'N' and 'L', denoting the number of elements in the array 'ARR', and the maximum weight capacity of one boat respectively.
The second line of each test case contains 'N' space-separated integers denoting the elements of the array 'ARR'.
For each test case, print a single integer - the minimum number of boats required.
Print the output of each test case in a separate line.
You do not need to print anything, it has already been taken care of. Just implement the given function.
1 <= T <= 10
1 <= L <= 10^9
1 <= N <= 10^5
1 <= ARR[i] <= L
Where 'T' denotes the number of test cases, 'N' denotes the number of elements in the array, 'L' denotes the maximum weight capacity of one boat, and 'ARR[i]' denotes the 'i'th' element of the array 'ARR'.
Time Limit: 1 sec
Therefore, our approach will be to sort the input array and maintain two pointers, one at each end of the array. Now we will try to pair the current heaviest person and the person having the least weight. If the cumulative sum of their weights does not exceed the boat's capacity, we will pair them together using one boat and move both the pointers ahead. Otherwise, we will give one boat to the heaviest weight person and move the pointer pointing to the heaviest person ahead.
Algorithm: