#include <bits/stdc++.h>
using namespace std;

int main()
{
    
    int t;
    cin>>t;
    
    while(t--){
         int n;
         cin>>n;
         long long cnt;
         cin>> cnt;
    
    vector<int>ar(n),height(n);
    
    for(int i=0; i<n; i++){
        cin>>ar[i];
    }
    
    for(int i=0; i<n; i++){
        cin>>height[i];
    }
    
    long long head=0, tail= 0, fruitcnt=0, ans=0;
    
    for(head= 0; head<n; head++){
        fruitcnt+=ar[head];
     
        
        while(tail<= head and fruitcnt > cnt){
            fruitcnt-=ar[tail];
            tail++;
        }
        
        if(head > 0){
            if( tail < head and (height[head-1] % height[head]) != 0){
                // cout<<" not ";
                tail= head;
                fruitcnt= ar[head];
            }
        }
        //   cout<<" "<<head<<" "<<fruitcnt<<endl;
        
        ans= max(ans, head-tail+1);
    }
    
    cout<<ans<<endl;
    }
   
}