"""PARTIEL BUG: les rendus 3, 2 et 2, 3 sont considérés comme distincts""" m = 1000000007 def main(): n, target = map(int, input().split()) dollars = [int(i) for i in input().split() if int(i) != 0] manieres = [0 for _ in range(target+1)] manieres[0] = 1 for k in range(1, target+1): man = 0 for coin in dollars: if coin <= k: #print("coin:", coin) man += manieres[k-coin] #print(k, man) manieres[k] = man%m print(manieres) return manieres[target] for _ in range(int(input())): print(main())