#include <bits/stdc++.h>
#define ishowspeed ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define ll long long
 
using namespace std;
 
 
int main(){
    ishowspeed;
    int tt;
    cin>>tt;
    while(tt--){
        ll n,l;
        cin>>n>>l;
        l = abs(l);
        ll x[3002], c[3002], dp[3002];
        for(int i=1;i<=n;i++){
            cin>>x[i];
        }
        for(int i=1; i<=n;i++){
            cin>>c[i];
        }
        for(int i=1; i<=l;i++)
        {
            dp[i]=LLONG_MAX;
        }
        dp[0]=0;
        for(ll i=1;i<=n;i++){
            dp[x[i]] = min(dp[x[i]],c[i]);
            for(ll j=1;j<=l;j++){
                if(dp[j]!=LLONG_MAX){
                    ll g= __gcd(j,x[i]);
                    dp[g] =min(dp[g],dp[j]+c[i]);
                }
            }
        }
        ll ans=LLONG_MAX;
        for(ll i=1; i<=l; i++){
            if(dp[i]==LLONG_MAX)
            continue;
            if(l%i==0){
                ans=min(ans,dp[i]);
            }
        }
        if(ans==LLONG_MAX)
        cout<<-1<<endl;
        else
        cout<<ans<<endl;
    }
     
    return 0;
}