#include <bits/stdc++.h>
#include <unordered_set>
using namespace std;
typedef pair<int, int> pii;
typedef long long ll;
typedef pair<ll, ll> pll;

int S, P;
int pa[501];
vector<pii> v;

int find(int n) {
	if (pa[n] < 0) return n;
	return pa[n] = find(pa[n]);
}
void merge(int a, int b) {
	a = find(a);
	b = find(b);
	if (a == b) return;
	pa[a] = b;
}
double dist(int i, int j) {
	ll d1 = v[i].first - v[j].first;
	ll d2 = v[i].second - v[j].second;
	return sqrt(d1 * d1 + d2 * d2);
}

bool chk(double d) {
	memset(pa, -1, sizeof(pa));
	for (int i = 0; i < P; i++)
		for (int j = i + 1; j < P; j++)
			if (dist(i, j) <= d)
				merge(i, j);
	int cnt = 0;
	for (int i = 0; i < P; i++) 
		if (pa[i] < 0) cnt++;
	return cnt <= S;
}

int main() {
//	ios::sync_with_stdio(false);
//	cin.tie(0), cout.tie(0);
	int N; cin >> N;
	while (N--) {
		cin >> S >> P;
		v.clear(), v.resize(P);
		for (int i = 0; i < P; i++) 
			cin >> v[i].first >> v[i].second;

		double lo = 0, hi = 1e9, mid;
		for (int i = 0; i < 100; i++){
			mid = (lo + hi) / 2;
			if (chk(mid)) hi = mid; 
			else lo = mid;
		}
		printf("%.2f", hi);
	}
	return 0;
}