추천한 직원이 팀에 있어야 한다는 조건 아래 트리에서 정확히 k명을 골라 생산성 합을 급여 합으로 나눈 값을 최대로 만들고, 소수 셋째 자리까지 출력한다.
UpCoder는 새 웹사이트를 만들 팀을 꾸리려 한다. 후보는 nnn명이고 사원 번호는 1번부터 nnn번까지다. CEO의 사원 번호는 0번이다. 각 후보는 자기보다 번호가 작은 사원의 추천을 받았다. 후보 한 명은 사원 번호 외에 연봉 sss, 기대 생산성 ppp, 자신을 추천한 사원의 번호 rrr로 나타낸다.
후보 nnn명 중에서 정확히 kkk명을 팀에 넣어야 한다. 팀의 총 가치는 팀원 생산성의 합을 팀원 연봉의 합으로 나눈 값이다. 어떤 후보를 팀에 넣으려면 그 후보를 추천한 사원도 팀에 있어야 한다. 추천한 사원이 CEO이면 이 조건은 이미 만족한다. 그래서 팀원 중 적어도 한 명은 CEO가 추천한 후보다. CEO는 경영을 맡으므로 뽑는 kkk명에는 들어가지 않는다.
이 조건을 지키면서 만들 수 있는 팀의 최대 총 가치를 구하라.
첫째 줄에 정수 kkk와 nnn이 공백으로 구분되어 주어진다 (1≤k≤n≤25001 \le k \le n \le 25001≤k≤n≤2500). kkk는 뽑아야 하는 팀원 수, nnn은 후보 수다.
다음 nnn개 줄에는 사원 한 명의 정보가 사원 1번부터 사원 nnn번까지 순서대로 주어진다. 각 줄에는 정수 sss, ppp, rrr이 공백으로 구분되어 주어진다. sss는 연봉 (1≤s≤100001 \le s \le 100001≤s≤10000), ppp는 생산성 (1≤p≤100001 \le p \le 100001≤p≤10000), rrr은 이 후보를 추천한 사원의 번호다 (0≤r<i0 \le r < i0≤r<i, iii는 이 후보의 사원 번호).
팀의 최대 총 가치를 소수점 아래 셋째 자리까지 한 줄에 출력한다. 정확한 값을 소수점 아래 넷째 자리에서 반올림하되, 넷째 자리 아래가 정확히 절반이면 올린다.