import sys,random,bisect from collections import deque,defaultdict from heapq import heapify,heappop,heappush from itertools import permutations from math import gcd,log input = lambda :sys.stdin.readline().rstrip() mi = lambda :map(int,input().split()) li = lambda :list(mi()) f = [0 for i in range(82)] f[1] = 1 f[2] = 2 for i in range(3,82): f[i] = f[i-1] + f[i-2] def solve_lie(N,W,ws): ws = [W+1] + ws for i in range(3,N+1): w = min(ws[i],ws[i-1]+ws[i-2]) tmp = ws[i-1]+ws[i-2] last = i-2 while last >= 3: tmp -= ws[last] tmp += ws[last-1] + ws[last-2] last -= 2 w = min(w,tmp) ws[i] = w res = 0 for i in range(N+1)[::-1]: if ws[i] <= W: W -= ws[i] res += f[i] return res for _ in range(int(input())): N,W = mi() w = li() print(solve_lie(N,W,w))