Chef is going to start playing Fantasy Football League (FFL) this season. In FFL, each team consists of exactly $15$ players: $2$ goalkeepers, $5$ defenders, $5$ midfielders and $3$ forwards. Chef has already bought $13$ players; he is only missing one defender and one forward.
There are $N$ available players (numbered $1$ through $N$). For each valid $i$, the $i$-th player is either a defender or a forward and has a price $P_i$. The sum of prices of all players in a team must not exceed $100$ dollars and the players Chef bought already cost him $S$ dollars.
Can you help Chef determine if he can complete the team by buying one defender and one forward in such a way that he does not exceed the total price limit?

-----Input-----
- The first line of the input contains a single integer $T$ denoting the number of test cases. The description of $T$ test cases follows.
- The first line of each test case contains two space-separated integers $N$ and $S$.
- The second line contains $N$ space-separated integers $P_1, P_2, \ldots, P_N$.
- The last line contains $N$ space-separated integers. For each valid $i$, the $i$-th of these integers is $0$ if the $i$-th player is a defender or $1$ if the $i$-th player is a forward.

-----Output-----
For each test case, print a single line containing the string "yes" if it is possible to build a complete team or "no" otherwise (without quotes).

-----Constraints-----
- $1 \le T \le 100$
- $1 \le N \le 100$
- $13 \le S \le 100$
- $1 \le P_i \le 100$ for each valid $i$

-----Subtasks-----
Subtask #1 (100 points): original constraints

-----Example Input-----
2
4 90
3 8 6 5
0 1 1 0
4 90
5 7 6 5
0 1 1 0

-----Example Output-----
yes
no

-----Explanation-----
Example case 1: If Chef buys the $1$-st and $3$-rd player, the total price of his team is $90 + 9 = 99$, which is perfectly fine. There is no other valid way to pick two players.
Example case 2: Chef cannot buy two players in such a way that all conditions are satisfied.

Difficulty: interview

Starter code:

Solutions:
for i in range(int(input())):
 n,s =map(int,input().split())
 l1=list(map(int,input().split()))
 l2=list(map(int,input().split()))
 m=[]
 n=[]
 for i in range(len(l1)):
  if l2[i]==0:
   m.append(l1[i])
  else:
   n.append(l1[i])
 if len(m)>0 and len(n)>0:
  if 100-s>=(min(m)+min(n)):
   print("yes")
  else:
   print("no")
 else:
  print("no")

for i in range(int(input())):
 n,s =map(int,input().split())
 l1=list(map(int,input().split()))
 l2=list(map(int,input().split()))
 m=[]
 n=[]
 for i in range(len(l1)):
  if l2[i]==0:
   m.append(l1[i])
  else:
   n.append(l1[i])
 if len(m)>0 and len(n)>0:
  if 100-s>=(min(m)+min(n)):
   print("yes")
  else:
   print("no")
 else:
  print("no")

# cook your dish here
for _ in range(int(input())):
 n,s=map(int,input().split())
 a=list(map(int,input().split()))
 b=list(map(int,input().split()))
 p=[]
 q=[]
 c=d=0
 for i in range(n):
  if(b[i]==0):
   c=1
   p.append(a[i])
  else:
   d=1
   q.append(a[i])
 if(c==1):
  x=min(p)
 
 
 if(d==1):
  y=min(q)
  
 s=100-s
 
 if(c==0 or d==0):
  print("no")
 elif((x+y)<=s):
  print("yes")
 else:
  print("no")

for _ in range(int(input())):
 n,m=map(int,input().split())
 p=list(map(int,input().split()))
 f=list(map(int,input().split()))
 e,d=[],[]
 for j in range(n):
  if f[j]==1:
   e.append(j)
  else:
   d.append(j)
 an=False
 for j in e:
  if an:
   break
  for k in d:
   if p[j]+p[k]+m<=100:
    an=True
    break
 if an:
  print("yes")
 else:
  print("no")

# cook your dish here
for i in range(int(input())):
 n,s=map(int,input().split())
 p=list(map(int,input().split()))
 c=list(map(int,input().split()))
 f,d=[],[]
 for j in range(n):
  if c[j]==1:
   f.append(j)
  else:
   d.append(j)
 ans=False
 for j in f:
  if ans:
   break
  for k in d:
   if p[j]+p[k]+s<=100:
    ans=True
    break
 if ans:
  print("yes")
 else:
  print("no")

# cook your dish here
for i in range(int(input())):
 n,s =map(int,input().split())
 l1=list(map(int,input().split()))
 l2=list(map(int,input().split()))
 m=[]
 n=[]
 for i in range(len(l1)):
  if l2[i]==0:
   m.append(l1[i])
  else:
   n.append(l1[i])
 if len(m)>0 and len(n)>0:
  if 100-s>=(min(m)+min(n)):
   print("yes")
  else:
   print("no")
 else:
  print("no")

for _ in range(int(input())):
 n,s = list(map(int,input().split()))
 p = list(map(int,input().split()))
 l = list(map(int,input().split()))

 mo=10000000
 mz=10000000
 for i in range(len(l)):
  if l[i]==0:
   if p[i]<mz:
    mz=p[i]
  else:
   if p[i]<mo:
    mo=p[i]
 ans =s+mo+mz
 if ans<=100:
  print("yes")
 else:
  print("no")
  
   


for _ in range(int(input())):
 n,s = list(map(int,input().split()))
 p = list(map(int,input().split()))
 l = list(map(int,input().split()))

 mo=10000000
 mz=10000000
 for i in range(len(l)):
  if l[i]==0:
   if p[i]<mz:
    mz=p[i]
  else:
   if p[i]<mo:
    mo=p[i]
 ans =s+mo+mz
 if ans<=100:
  print("yes")
 else:
  print("no")
  
   


for _ in range(int(input())):
 n,s = list(map(int,input().split()))
 p = list(map(int,input().split()))
 l = list(map(int,input().split()))
 one =0
 zero=0
 ans=0
 mo=10000000
 mz=10000000
 for i in range(len(l)):
  if l[i]==0:
   if p[i]<mz:
    mz=p[i]
  else:
   if p[i]<mo:
    mo=p[i]
 ans =s+mo+mz
 if ans<=100:
  print("yes")
 else:
  print("no")
  
   


for _ in range(int(input())):
 n,s =list(map(int,input().split()))
 arr = list(map(int,input().split()))
 arr2 = list(map(int,input().split()))

 marr=[]
 narr=[]

 for i in range(len(arr)):
  if arr2[i]==0:
   marr.append(arr[i])
  else:

   narr.append(arr[i])
 if len(marr)>0 and len(narr)>0:
  if 100-s>= (min(marr)+min(narr)):
   print("yes")
  else:
   print("no")
  
 else:
  print("no")


 


 
  


# cook your dish here
for _ in range(int(input())):
 n,s = list(map(int,input().split()))
 p = list(map(int,input().split()))
 l = list(map(int,input().split()))
 l1,l2=[],[]
 for i in range(len(l)):
  if l[i]==0:
   l1.append(p[i])
  elif l[i]==1:
   l2.append(p[i])
 if len(l1)!=0 and len(l2)!=0:
  l1.sort()
  l2.sort()
  s+= l1[0]+l2[0]
  # print(s)
  if s<=100:
   print('yes')
  else:
   print('no')
 else:
  print('no')


for _ in range(int(input())):
 n, s = map(int, input().split())
 P = list(map(int, input().split()))
 df = list(map(int, input().split()))
 d, f = 100, 100
 for i in range(n):
  if df[i] == 0:
   if P[i] < d:
    d = P[i]
  else:
   if P[i] < f:
    f = P[i]
 if s+d+f <= 100:
  print('yes')
 else:
  print('no')

# cook your dish here
for t in range(int(input())):
 n,m = map(int,input().split())
 a = list(map(int,input().split()))
 b = list(map(int,input().split()))
 c = []
 d = []
 for i in range(n):
  if b[i]==1:
   c.append(a[i])
  else:
   d.append(a[i])
 r = 100-m
 if len(c)==0 or len(d)==0:
  print("no")
 elif min(c)+min(d)<=r:
  print("yes")
 else:
  print("no")

for t in range(int(input())):
 n,k=map(int,input().split())
 l1=list(map(int,input().split()))
 l2=list(map(int,input().split()))
 k=100-k
 f=0
 for i in range(n-1):
  for j in range(i+1,n):
   if (l2[i]==0 and l2[j]==1) or (l2[i]==1 and l2[j]==0):
    if l1[i]+l1[j]<=k:
     f=1
     break
   if f==1:
    break
  if f==1:
   break
 if f==0:
  print("no")
 else:
  print("yes")

# cook your dish here
t = int(input())
for _ in range(t):
 n, s = map(int, input().split())
 p = list(map(int, input().split()))
 arr = list(map(int, input().split()))
 min_def = 9999999
 min_for = 9999999
 for i in range(n):
  if arr[i] == 0:
   if p[i] < min_def:
    min_def = p[i]
  else:
   if p[i] < min_for:
    min_for = p[i]
 if s + min_def + min_for <= 100:
  print('yes')
 else:
  print('no')

for _ in range(int(input())):
 n,m = map(int,input().split())
 a = list(map(int,input().split()))
 b = list(map(int,input().split()))
 c = []
 d = []

 for i in range(n):
  if b[i]==1:
   c.append(a[i])
  else:
   d.append(a[i])
 r = 100-m
 if len(c)==0 or len(d)==0:
  print("no")
 elif min(c)+min(d)<=r:
  print("yes")
 else:
  print("no")

t = int(input())
for _ in range(t):
 n, s = map(int, input().split())
 p = list(map(int, input().split()))
 arr = list(map(int, input().split()))
 min_def = 9999999
 min_for = 9999999
 for i in range(n):
  if arr[i] == 0:
   if p[i] < min_def:
    min_def = p[i]
  else:
   if p[i] < min_for:
    min_for = p[i]
 if s + min_def + min_for <= 100:
  print('yes')
 else:
  print('no')

# cook your dish here
for T in range(int(input())):
 n,s = list(map(int,input().split()))
 p = list(map(int,input().split()))
 ls = list(map(int,input().split()))
 d = []
 f = []
 flag1 = 0
 for i in range(n):
  if ls[i]==0:
   d.append(p[i])
  else:
   f.append(p[i])
 
 for j in range(len(d)):
  for k in range(len(f)):
   if (100-s)>=(d[j]+f[k]):
    flag1 = 1
    break
 if flag1 == 1:
  print("yes")
 else:
  print("no")


# cook your dish here


t = int(input())

while t > 0:
 t -= 1
 n,s=list(map(int,(input()).split()))
 p=list(map(int,(input()).split()))
 a=list(map(int,(input()).split()))
 
 mind = 101
 minf = 101
 
 for j in range(n):
  if a[j] == 0:
   if p[j] < mind:
    mind = p[j]
  else:
   if p[j] < minf:
    minf = p[j]
    
 if mind + minf + s >100:
  print("no")
 else:
  print("yes")

for _ in range(int(input())):
 n, s = map(int, input().split())
 arr_price = list(map(int, input().split()))
 arr_players = list(map(int, input().split()))
 a = b = 101
 for i in range(n):
  if arr_players[i] == 0:
   a = min(a, arr_price[i])
   if s + a + b <= 100:
    print('yes')
    break
  else:
   b = min(b, arr_price[i])
   if s + a + b <= 100:
    print('yes')
    break
 else:
  print('no')

# cook your dish here
t=int(input())
for _ in range(t):
 n,s = map(int,input().split())
 c=list(map(int,input().split()))
 a=list(map(int,input().split()))
 x=y=101
 for i in range(n):
  if a[i]==0:
   x=min(x,c[i])
   if s+x+y<=100:
    print("yes")
    break
  else:
   y=min(y,c[i])
   if s+x+y<=100:
    print("yes")
    break
 else:
  print("no")

import sys
def hasKey(dic,key):
 return key in list(dic.keys())

cases = int(sys.stdin.readline().rstrip())
for case in range(cases):
 
 
 [N,S] = list(map(int,sys.stdin.readline().rstrip().split(" ")))
 
 p = list(map(int,sys.stdin.readline().rstrip().split(" ")))
 t = list(map(int,sys.stdin.readline().rstrip().split(" ")))
 costs={}
 costs[0] = []
 costs[1] = []
 left = 100 - S
 for i in range(N):
  if t[i] == 0:
   costs[0].append(p[i])
  else :
   costs[1].append(p[i])
 error = True
 for i in costs[0]:
  for j in costs[1]:
   if (i+j <=left):
    error = False
    break
  if(error == False):
   break
 if(error):
  print("no")
 else :
  print("yes")
  


for _ in range(int(input())):
 n,s = tuple(map(int,input().split()))
 p = list(map(int,input().split()))
 isattacker = list(map(int,input().split()))
 minatk = 101
 mindef = 101
 for pos,price in zip(isattacker,p) :
  if pos==1 and minatk>price :
   minatk = price
  elif pos==0 and mindef>price :
   mindef = price
 if s+minatk+mindef <= 100 :
  print('yes')
 else :
  print('no')


for _ in range(int(input())) :
 n, k = map(int,input().split())
 k = 100-k
 a = list(map(int,input().strip().split()))
 b = list(map(int,input().strip().split()))
 d_min = 100
 a_min = 100
 for i in range(n) :
  if b[i] == 0 and a[i]<d_min :
   d_min = a[i]
  elif b[i] == 1 and a[i]<a_min :
   a_min = a[i]
 if a_min+d_min <= k :
  print("yes")
 else :
  print("no")