//chokudai
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <vector>
#include<string>
#include<queue>
#include<map>

using namespace std;
#define ll long long

int N, M, e;

vector<ll> C, D;


int calc2(ll add) {
	int A = 0;
	int B = 0;
	int ans = 0;
	while (A < C.size() && B < D.size()) {
		if (abs(C[A] + add - D[B]) <= e) {
			A++;
			B++;
			ans++;
		}
		else if (C[A] + add < D[B]) A++;
		else B++;
	}
	return ans;
}


int calc() {
	cin >> N >> M >> e;
	C = vector<ll>(N);
	D = vector<ll>(M);
	for (int i = 0; i < N; i++)
	{
		cin >> C[i];
	}
	for (int i = 0; i < M; i++)
	{
		cin >> D[i];
	}
	sort(C.begin(), C.end());
	sort(D.begin(), D.end());

	int ans = 0;
	for (int i = 0; i < N; i++)
	{
		for (int j = 0; j < M; j++)
		{
			ll diffA = (D[j] + e) - C[i];
			ll diffB = (D[j] - e) - C[i];
			ans = max(ans, calc2(diffA));
			ans = max(ans, calc2(diffB));
		}
	}
	return ans;
}


int main() {
	int T;
	cin >> T;
	for (int i = 0; i < T; i++)
	{
		cout << calc() << endl;
	}

	return 0;
}