풍선을 터뜨리지 마세요
시간 제한7초메모리 제한128 MB
바닥에 닿은 채 벽과 바늘에 닿지 않고 상자 안에 들어가는 가장 큰 구의 반지름을 구합니다.
문제
위가 열려 있고 밑면이 정사각형인 상자가 바닥에 놓여 있다. 상자 안을 들여다보면 밑면에 바늘 몇 개가 수직으로 꽂혀 있다.
이 상자에 공 모양 풍선을 넣으려고 한다. 풍선은 상자 밑면에 닿아야 하고, 네 옆면과 바늘 어디에도 파고들 수 없다. 겉면이 스치듯 맞닿는 것은 괜찮다. 이런 풍선 중 가장 큰 것의 반지름을 구하라.
옆면은 높이가 이고 두께가 없다. 그래서 반지름이 보다 큰 풍선은 옆면 위로 넘어가 부풀 수 있고, 이때는 옆면의 위쪽 모서리가 풍선을 막는다.

그림의 위쪽은 바늘이 꽂힌 배치이고, 아래쪽은 그 배치에 놓을 수 있는 가장 큰 풍선이다. 예제 입력의 첫 번째 데이터에 해당한다.
입력
입력은 데이터 여러 개로 이루어진다. 각 데이터의 형식은 다음과 같다.
n w
x1 y1 h1
.
.
.
xn yn hn
첫 줄에 양의 정수 과 가 공백 하나로 구분되어 주어진다. 은 바늘의 개수이고 는 옆면의 높이다.
상자 밑면은 한 변의 길이가 100인 정사각형이고, 네 꼭짓점은 , , , 이다.
이어지는 개의 줄에 정수 , , 가 주어진다. 번째 바늘은 에 꽂혀 있고, 높이는 이다. 같은 자리에 꽂힌 바늘은 없다.
, , , , 이다. 바늘과 옆면의 두께는 무시한다.
입력의 마지막 줄에는 0 두 개가 주어진다. 데이터의 개수는 1000개를 넘지 않는다.
출력
각 데이터마다 가장 큰 풍선의 반지름을 한 줄에 출력한다.
채점은 출력을 글자 그대로 비교한다. 반지름은 소수점 아래 여섯째 자리에서 반올림해서 다섯째 자리까지 출력한다. 반지름이 26이면 26.00000으로 출력한다. 모든 데이터의 정답은 반올림 경계에서 보다 멀리 떨어져 있으므로, 반지름을 오차 안으로 구하면 출력이 하나로 정해진다.