#include<stdio.h>
#define MOD 1000000007
typedef long long ll;
ll solve(ll arr[],ll dim[],ll n,ll m)
{
ll ans=0;
if(m==0)
return 1;
else if(m<0)
return 0;
else
{
ans=0;
for(int i=0;i<n;i++)
{
if(arr[i]+1<=dim[i])
{
arr[i]++;
ans+=solve(arr,dim,n,m-1); //First recursion
ans%=MOD;
arr[i]--; //To comeback to present prosition to try next dimension
}
if(arr[i]-1>0)
{
arr[i]--;
ans+=solve(arr,dim,n,m-1); //Second recursion
ans%=MOD;
//arr[i]++; //To comeback to present prosition to try next dimension
}
}
}
return ans%MOD;
}
int main()
{
ll test,n,m;
scanf("%lld",&test);
while(test--)
{
scanf("%lld%lld",&n,&m);
ll arr[n],dim[n];
for(int i=0;i<n;i++)
scanf("%lld",&arr[i]);
for(int i=0;i<n;i++)
scanf("%lld",&dim[i]);
printf("%lld\n",solve(arr,dim,n,m));
}
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2RlZmluZSBNT0QgMTAwMDAwMDAwNwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKbGwgc29sdmUobGwgYXJyW10sbGwgZGltW10sbGwgbixsbCBtKQp7CglsbCBhbnM9MDsKCWlmKG09PTApCgkJcmV0dXJuIDE7CgllbHNlIGlmKG08MCkKCQlyZXR1cm4gMDsKCWVsc2UKCXsKCQlhbnM9MDsKCQlmb3IoaW50IGk9MDtpPG47aSsrKQoJCXsKCQkJaWYoYXJyW2ldKzE8PWRpbVtpXSkKCQkJewoJCQkJYXJyW2ldKys7CgkJCQlhbnMrPXNvbHZlKGFycixkaW0sbixtLTEpOwkJLy9GaXJzdCByZWN1cnNpb24KCQkJCWFucyU9TU9EOwoJCQkJYXJyW2ldLS07CS8vVG8gY29tZWJhY2sgdG8gcHJlc2VudCBwcm9zaXRpb24gdG8gdHJ5IG5leHQgZGltZW5zaW9uCgkJCX0KCQkJaWYoYXJyW2ldLTE+MCkKCQkJewoJCQkJYXJyW2ldLS07CgkJCQlhbnMrPXNvbHZlKGFycixkaW0sbixtLTEpOwkJLy9TZWNvbmQgcmVjdXJzaW9uCgkJCQlhbnMlPU1PRDsKCQkJCS8vYXJyW2ldKys7CS8vVG8gY29tZWJhY2sgdG8gcHJlc2VudCBwcm9zaXRpb24gdG8gdHJ5IG5leHQgZGltZW5zaW9uCgkJCX0KCQl9CgkJCgl9CglyZXR1cm4gYW5zJU1PRDsKfQppbnQgbWFpbigpCnsKCWxsIHRlc3QsbixtOwoJc2NhbmYoIiVsbGQiLCZ0ZXN0KTsKCXdoaWxlKHRlc3QtLSkKCXsKCQlzY2FuZigiJWxsZCVsbGQiLCZuLCZtKTsKCQlsbCBhcnJbbl0sZGltW25dOwoJCWZvcihpbnQgaT0wO2k8bjtpKyspCgkJCXNjYW5mKCIlbGxkIiwmYXJyW2ldKTsKCQlmb3IoaW50IGk9MDtpPG47aSsrKQoJCQlzY2FuZigiJWxsZCIsJmRpbVtpXSk7CgkJcHJpbnRmKCIlbGxkXG4iLHNvbHZlKGFycixkaW0sbixtKSk7Cgl9CglyZXR1cm4gMDsKfQ==
MTAKMSAyODcKNDQKNzgKMSAyMzYKMjUKODcKMSAxMjIKNDEKNjMKMSAyNjAKNwo2NAoxIDEyNwozCjczCjEgNjkKNgo2OAoxIDIzMQoxNAo2MwoxIDIzNgoxMwozMAoxIDI1OQozOAo3MAoxIDI1NwoxMQoxMg==
10
1 287
44
78
1 236
25
87
1 122
41
63
1 260
7
64
1 127
3
73
1 69
6
68
1 231
14
63
1 236
13
30
1 259
38
70
1 257
11
12