#include <bits/stdc++.h>

#define long long long int
using namespace std;

// @author: pashka

struct point {
    double x, y;
};

double dist(point a, point b) {
    return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}

int n, k;
vector<point> p;
vector<double> c;

bool good(double t) {
    if (k == 1)
        return true;
    vector<double> r(n);
    for (int i = 0; i < n; i++) {
        r[i] = t / c[i];
    }
    for (int i = 0; i < n; i++) {
        for (int j = i + 1; j < n; j++) {
            if (dist(p[i], p[j]) > r[i] + r[j]) continue;
            if (dist(p[i], p[j]) < abs(r[i] - r[j])) continue;
            double aa = -2 * (p[i].x - p[j].x);
            double bb = -2 * (p[i].y - p[j].y);
            double cc = p[i].x * p[i].x - p[j].x * p[j].x +
                    p[i].y * p[i].y - p[j].y * p[j].y - r[i] * r[i] +
                    r[j] * r[j];
            // aa * x + bb * y + cc = 0
            double dd = dist({0, 0}, {aa, bb});
            aa /= dd;
            bb /= dd;
            cc /= dd;

            dd = aa * p[i].x + bb * p[i].y + cc;
            point perp = {p[i].x - aa * dd, p[i].y - bb * dd};
            double qq = sqrt(r[i] * r[i] - dd * dd);

            vector<point> oo = {
                    {perp.x + bb * qq, perp.y - aa * qq},
                    {perp.x - bb * qq, perp.y + aa * qq}
            };

            for (point o : oo) {
                int s = 0;
                for (int q = 0; q < n; q++) {
                    if (dist(p[q], o) <= r[q] || q == i || q == j) s++;
                }
                if (s >= k) return true;
            }
        }
    }
    for (point o : p) {
        int s = 0;
        for (int q = 0; q < n; q++) {
            if (dist(p[q], o) <= r[q]) s++;
        }
        if (s >= k) return true;
    }
    return false;
}

int main() {
    ios::sync_with_stdio(false);

    cin >> n >> k;
    p.resize(n);
    c.resize(n);
    for (int i = 0; i < n; i++) {
        cin >> p[i].x >> p[i].y >> c[i];
    }

    double l = 0;
    double r = 1e10;
    for (int tt = 0; tt < 100; tt++) {
        double m = (l + r) / 2;
        if (good(m)) {
            r = m;
        } else {
            l = m;
        }
    }
    cout << setprecision(20) << r << "\n";

    return 0;
}