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

#define X first
#define Y second

typedef long long int ll;
typedef pair<ll, ll> pll;
typedef vector<ll> vll;

vector<pll> best_square(const vector<pll>& points, ll R) {
  vll xs, ys;
  for (auto& p : points) xs.push_back(p.X), ys.push_back(p.Y);
  sort(xs.begin(), xs.end()), sort(ys.begin(), ys.end());
  vector<pll> best;
  for (auto x : xs) for (auto y : ys) {
    vector<pll> cur;
    for (auto& p : points)
      if (p.X >= x && p.X <= x + R && p.Y >= y && p.Y <= y + R)
        cur.push_back(p);
    if (cur.size() > best.size()) best = cur;
  }
  return best;
}

void solve() {
  int N; ll R;
  cin >> N >> R;
  vector<pll> points(N);
  for (auto& p : points) cin >> p.X >> p.Y;
  int ans = 0;
  auto square1 = best_square(points, R);
  ans += square1.size();
  points.erase(remove_if(points.begin(), points.end(), [&](pll p) { return find(square1.begin(), square1.end(), p) != square1.end(); }), points.end());
  auto square2 = best_square(points, R);
  ans += square2.size();
  cout << ans << '\n';
}

int main() {
	int T; cin >> T;
	for (int t=1; t<=T; t++) {
	  cout << "Case #" << t << ": ";
	  solve();
	}
}
