// 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;
}
Ly8gQ29pbiBDaGFuZ2UgCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTU9EID0gMTAwMDAwMDA3OwoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICAKICAgIGludCBUOwogICAgY2luID4+IFQ7CiAgICAKICAgIGZvciAoaW50IGNhc2VubyA9IDE7IGNhc2VubyA8PSBUOyBjYXNlbm8rKykgewogICAgICAgIGludCBuLCBLOwogICAgICAgIGNpbiA+PiBuID4+IEs7CiAgICAgICAgCiAgICAgICAgdmVjdG9yPGludD4gQShuKSwgQyhuKTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBjaW4gPj4gQVtpXTsKICAgICAgICB9CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgY2luID4+IENbaV07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHZlY3Rvcjxsb25nIGxvbmc+IGRwKEsgKyAxLCAwKTsKICAgICAgICBkcFswXSA9IDE7CiAgICAgICAgCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgaW50IGEgPSBBW2ldOwogICAgICAgICAgICBpbnQgYyA9IENbaV07CiAgICAgICAgICAgCiAgICAgICAgICAgIGZvciAoaW50IGogPSBLOyBqID49IGE7IGotLSkgewogICAgICAgICAgICAgICAgZm9yIChpbnQgdCA9IDE7IHQgPD0gYzsgdCsrKSB7CiAgICAgICAgICAgICAgICAgICAgaW50IHJlbSA9IGogLSB0ICogYTsKICAgICAgICAgICAgICAgICAgICBpZiAocmVtIDwgMCkgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgZHBbal0gPSAoZHBbal0gKyBkcFtyZW1dKSAlIE1PRDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICBjb3V0IDw8ICJDYXNlICIgPDwgY2FzZW5vIDw8ICI6ICIgPDwgZHBbS10gPDwgIlxuIjsKICAgIH0KICAgIAogICAgcmV0dXJuIDA7Cn0=