from collections import *
from itertools import *
from bisect import *
from heapq import *
import copy
import math

def get_circle_center_and_radius(x1, y1, x2, y2, x3, y3):
    """
    3点を通る円の中心と半径を取得
    """
    d = 2 * ((y1 - y3) * (x1 - x2) - (y1 - y2) * (x1 - x3))
    if d==0:
        return(0)
    x = ((y1 - y3) * (y1 ** 2 - y2 ** 2 + x1 ** 2 - x2 ** 2) - (y1 - y2) * (y1 ** 2 - y3 ** 2 + x1 ** 2 - x3 ** 2)) / d
    y = ((x1 - x3) * (x1 ** 2 - x2 ** 2 + y1 ** 2 - y2 ** 2) - (x1 - x2) * (x1 ** 2 - x3 ** 2 + y1 ** 2 - y3 ** 2)) / -d
    #r = math.sqrt((x - x1) ** 2 + (y - y1) ** 2)
    return (x, y)
#N=int(input())
#X,Y=map(int,input().split())
#S=list(map(int,input().split()))
#S=[list(map(int,input().split())) for i in range(N)]
N,K=map(int,input().split())
XYC=[list(map(int,input().split())) for i in range(N)]
if K==1:
    print(0)
    exit()
count=10**18

if N>=2:
    nlst=combinations(list(range(N)),2)

    for n1,n2 in nlst:
        x1,y1,c1=XYC[n1]
        x2,y2,c2=XYC[n2]
        A=c1+c2
        X=(x1*c1+x2*c2)/A
        Y=(y1*c1+y2*c2)/A
        count1=[]
        for x,y,c in XYC:
            count1.append(((X-x)**2+(Y-y)**2)**0.5*c)
        count1.sort()
        #print(X,Y,count1)
        count=min(count,count1[K-1])

if N>=3:
    nlst=combinations(list(range(N)),3)
    for n1,n2,n3 in nlst:
        x1,y1,c1=XYC[n1]
        x2,y2,c2=XYC[n2]
        x3,y3,c3=XYC[n3]
        C=get_circle_center_and_radius(c1*x1,c1*y1,c2*x2,c2*y2,c3*x3,c3*y3)
        if C:
            X,Y=C
        else:
            continue
        X,Y=X/A,Y/A

        count1=[]
        for x,y,c in XYC:
            count1.append(((X-x)**2+(Y-y)**2)**0.5*c)
        count1.sort()

        count=min(count,count1[K-1])

print(count)
