#include<bits/stdc++.h>
using namespace std;

#define ll long long 
#define pb push_back
vector<ll> a,b,c,d,sum1,sum2;
ll binary(vector<ll> A, ll low, ll high, ll x){
    ll mid, result=-1;
    while(low<=high){
         mid = (low+high)/2;
        if(A[mid]==x && (mid-1<0 || A[mid-1]<x))
        {
            result = mid;
            break;
        }
        else if((A[mid]==x && A[mid-1]==x) || (x<A[mid]))
        {
            high = mid-1;
        }
        else
        {
            low = mid+1;
        }
	//cout << " stuck " << endl;
    }
    return result;
}
ll binary1( vector<ll> A, ll low, ll high, ll x) {
    ll mid , result =-1;
    while(low<=high){
         mid = (low+high)/2;
         if(A[mid]==x && (mid+1==A.size() || A[mid+1]>x))
         {
             result = mid;
             break;
         }
         else if((A[mid]==x && A[mid+1]==x) || (A[mid]<x))
         {
             low = mid+1;
         }
         else{
             high = mid-1;
         }
	//cout << " stuck1 " << endl;
    }
    return result;
}


int main() {
	freopen("input.txt","r",stdin);
	freopen("output.txt","w",stdout);
	int t, cases=0;
	cin >> t;
	while(t--) {
		long long n, k;
		cin >> n >> k;
		a.clear();
		b.clear();
		c.clear();
		d.clear();
		sum1.clear();
		sum2.clear();
		for(long long int i=0;i<n;i++) {
			long long int x;
			cin >> x;
			a.push_back(x);
		}
		for(long long int j=0;j<n;j++) {
			long long int x;
			cin >> x;
			b.push_back(x);
		}
		 for(long long int i=0;i<n;i++) {
                        long long int x;
                        cin >> x;
                        c.push_back(x);
                }
                for(long long int j=0;j<n;j++) {
                        long long int x;
                        cin >> x;
                        d.push_back(x);
                }
		for(ll i=0;i<n;i++) {
			for(ll j =0; j< n;j++) {
				sum1.pb((ll)((a[i]^b[j])));
			}
		}
		for(ll i=0;i<n;i++) {
			for(ll j=0;j<n;j++) {
				sum2.pb((ll)((c[i])^d[j]));
			}
		}
		//sort(sum1.begin(), sum1.end());
		sort(sum2.begin(), sum2.end());
		ll answer=0;
		cout << sum1.size() << endl;
		for(ll i=0;i<sum1.size();i++) {
			ll l1 = binary(sum2,0,sum2.size()-1, k^sum1[i]);
			ll l2 = binary1(sum2,0, sum2.size()-1,k^sum1[i]);
			if(l1!=-1 && l2!=-1){
				answer += (l2-l1+1);
			}
			//cout << " return " << endl;
		}
		cout << "Case #" << ++cases << ": " << answer << endl;
	}
	fclose(stdout);
	return 0;

}
