#define _USE_MATH_DEFINES

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>
#include <map>
#include <set>
#include <unordered_map> 
#include <unordered_set>
#include <functional>

using namespace std;

typedef pair<long long int, long long int> P;
typedef tuple<int, int, int> T;

long long int INF = 1e18;
long long int MOD = 1e9 + 7;

double EPS = 1e-10;

int N, K;
int x[100], y[100], c[100];

int cntC(double x1, double y1, double T){
	int ret = 0;
	for(int i = 0; i < N; i++){
		double dx = x[i] - x1;
		double dy = y[i] - y1;
		// cout << dx * dx + dy * dy << " " << T * T / c[i] / c[i] << endl;
		if(dx * dx + dy * dy <= T * T / (c[i] * c[i]) * (1 + EPS)){
			ret += 1;
		}
	}
	// cout << ret << endl;
	return ret;
}

bool check(double T){
	// cout << "hoge" << endl;
	for(int i = 0; i < N; i++){
		for(int j = i + 1; j < N; j++){
			int dx = x[j] - x[i];
			int dy = y[j] - y[i];
			int d2 = dx * dx + dy * dy;
			double c1 = (double)c[i];
			double c2 = (double)c[j];
			double r12 = T * T / c1 / c1;
			double r22 = T * T / c2 / c2;
			double a = (d2 + r12 - r22) / 2;
			// cout << a << endl;
			// cout << dx << " " << dy << endl;
			if(d2 * r12 - a * a < 0){
				continue;
			}
			double sq = sqrt(d2 * r12 - a * a);
			// cout << (a * dx + dy * sq) / d2 + x[i] << " " << (a * dy - dx * sq) / d2 - y[i] << " " << cntC((a * dx + dy * sq) / d2 + x[i], (a * dy - dx * sq) / d2 - y[i], T) << endl;
			if(cntC((a * dx + dy * sq) / d2 + x[i], (a * dy - dx * sq) / d2 + y[i], T) >= K){
				return true;
			}
			// cout << (a * dx - dy * sq) / d2 - x[i] << " " << (a * dy + dx * sq) / d2 + y[i] << " " << cntC((a * dx - dy * sq) / d2 - x[i], (a * dy + dx * sq) / d2 + y[i], T) << endl;
			if(cntC((a * dx - dy * sq) / d2 - x[i], (a * dy + dx * sq) / d2 + y[i], T) >= K){
				return true;
			}
		}
		if(cntC(x[i], y[i], T) >= K){
			return true;
		}
	}
	return false;
}

int main(){
	cin >> N >> K;
	for(int i = 0; i < N; i++){
		cin >> x[i] >> y[i] >> c[i];
	}
	double L = 0, R = INF;
	while(R - L >= EPS){
		bool ret = check((L + R) / 2);
		if(ret){
			R = (L + R) / 2;
		}else{
			L = (L + R) / 2;
		}
	}
	printf("%.10f\n", R);
	return 0;
}