// Coin Change 
#include <iostream>
#include <vector>

using namespace std;

const int MOD = 100000007;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    
    int T;
    cin >> T;
    
    for (int caseno = 1; caseno <= T; caseno++) {
        int n, K;
        cin >> n >> K;
        
        vector<int> A(n), C(n);
        for (int i = 0; i < n; i++) {
            cin >> A[i];
        }
        for (int i = 0; i < n; i++) {
            cin >> C[i];
        }
        
        vector<long long> dp(K + 1, 0);
        dp[0] = 1;
        
        for (int i = 0; i < n; i++) {
            int a = A[i];
            int c = C[i];
           
            for (int j = K; j >= a; j--) {
                for (int t = 1; t <= c; t++) {
                    int rem = j - t * a;
                    if (rem < 0) break;
                    
                    dp[j] = (dp[j] + dp[rem]) % MOD;
                }
            }
        }
        
        cout << "Case " << caseno << ": " << dp[K] << "\n";
    }
    
    return 0;
}