import io import sys from collections import defaultdict, deque, Counter from itertools import permutations, combinations, accumulate from heapq import heappush, heappop from bisect import bisect_right, bisect_left from math import gcd import math _INPUT = """\ 6 5 10 4 3 2 1 5 5 4 4 3 3 2 0 -100 -100 500 100 6 -2 6 5 1 -6 6 4 6 6 -3 -5 7 -2 """ def input(): return sys.stdin.readline()[:-1] inf=10**20 mod=998244353 def solve(test): N,W=map(int, input().split()) bag=sorted([list(map(int, input().split())) for _ in range(N)],key=lambda x:x[1]) def idx(i,j): return i*(20000+1)+j dp=[[-inf,0] for _ in range((N+1)*(20000+1))] dp[idx(0,10000)]=[0,1] # print(bag) for i in range(N): v,w=bag[i] for j in range(20000+1): if dp[idx(i+1,j)][0]