#include <iostream>
#include<algorithm>
#include<vector>
using namespace std;

#define int long long

signed main()
{
    int t;
    cin >> t;

    while(t--)
    {
        int n, c;
        cin >> n >> c;

        vector<int> a(n), b(n - 1);
        for(int i = 0; i < n; i++) cin >> a[i];
        for(int i = 0; i < n - 1; i++) cin >> b[i];

        int ans = 1e18 + 7;

        vector<int> d(n), m(n);
        d[0] = m[0] = 0;

        for(int i = 1; i < n; i++)
        {
            if(m[i - 1] < b[i - 1])
            {
                int da = (b[i - 1] - m[i - 1] + a[i - 1] - 1) / a[i - 1];
                d[i] = d[i - 1] + da + 1;
                m[i] = m[i - 1] + da * a[i - 1] - b[i - 1];
            }
            else
            {
                d[i] = d[i - 1] + 1;
                m[i] = m[i - 1] - b[i - 1];
            }
        }

        for(int i = 0; i < n; i++) ans = min(ans, d[i] + (c - m[i] + a[i] - 1) / a[i]);

        cout << ans << "\n";
    }

    return 0;
}
