잠수부

시간 제한3초메모리 제한128 MB

문제

잠수부가 심해에서의 작업을 마치고 수면으로 올라가려고 합니다. 수면 위 보트에서 잠수부가 있는 수심 $d$피트 지점까지 밧줄이 수직으로 내려와 있으며, 잠수부는 이 밧줄을 따라서만 위아래로 이동합니다.

그런데 작업하는 동안 밧줄 근처에 여러 마리의 상어가 모여들었습니다. 상어들은 아직 잠수부를 위협이나 먹이로 여기지 않지만, 잠수부가 어떤 상어와의 거리가 $r$피트보다 가까워지면 그 상어는 즉시 잠수부를 공격합니다.

잠수병을 피하기 위해 잠수부는 1초에 최대 $v_d$피트의 속도로만 내려가거나 올라갈 수 있습니다. 또한 수심 $d$피트보다 더 깊이 내려갈 수는 없습니다.

각 상어 $i$는 자신만의 일정한 수심 $d_i$피트에서 밧줄 근처를 헤엄칩니다. 모든 상어의 속도와 움직임 방식은 동일합니다. 상어는 물속에서 가만히 있을 수 없어 가라앉지 않으려면 계속 헤엄쳐야 하므로, 일정한 속도 $v_s$로 밧줄에서 최대 $w$피트까지 멀어졌다가 다시 밧줄로 돌아오는 왕복 운동을 반복합니다. 상어가 방향을 바꾸는 것은 매우 빨라 순간적으로 일어난다고 봅니다. 상어가 잠수부를 공격하는 것 역시 매우 빨라, 잠수부가 어떤 상어를 중심으로 반지름 $r$피트인 원 안에 들어오는 순간 즉시 일어난다고 봅니다.

잠수부는 항상 밧줄 위(밧줄로부터의 수평 거리가 $0$)에 있으므로, 잠수부와 상어 사이의 거리는 두 수심의 차이와 상어가 밧줄에서 떨어진 수평 거리를 두 변으로 하는 직각삼각형의 빗변 길이, 즉 $\sqrt{(\text{수심 차이})^2 + (\text{상어의 수평 거리})^2}$ 입니다.

잠수부가 상어에게 공격받지 않고 수면까지 올라갈 수 있는지, 올라갈 수 있다면 가장 빠르게 걸리는 시간이 얼마인지 구하세요.

입력

입력의 첫 번째 줄에는 정수 6개가 주어집니다.

  • $d$ ($10 \le d \le 100$) — 잠수부의 처음 수심.
  • $v_d$ ($1 \le v_d \le 10$) — 잠수부의 최대 속도.
  • $n$ ($1 \le n \le 20$) — 상어의 수.
  • $r$ ($1 \le r \le 10$) — 상어와 잠수부가 유지해야 하는 최소 안전 거리.
  • $w$ ($10 \le w \le 100$) — 상어가 밧줄에서 멀어지는 최대 거리.
  • $v_s$ ($1 \le v_s \le 50$) — 상어의 속도.

이어서 $n$개의 줄에 각 상어의 정보가 정수 3개씩 주어집니다.

  • $d_i$ ($1 \le d_i < d$) — $i$번째 상어의 수심.
  • $w_i$ ($0 \le w_i \le w$) — $i$번째 상어가 처음에 밧줄에서 떨어져 있는 거리.
  • $f_i$ ($f_i$는 $1$ 또는 $-1$) — $i$번째 상어의 처음 이동 방향. 밧줄에서 멀어지는 방향이면 $1$, 밧줄로 다가오는 방향이면 $-1$.

처음에 잠수부는 모든 상어로부터 $r$피트보다 멀리 떨어져 있습니다.

출력

잠수부가 수면에 도달할 수 없으면 IMPOSSIBLE을 출력합니다.

도달할 수 있으면 수면까지 올라가는 데 걸리는 최소 시간을 소수점 아래 첫째 자리까지 반올림하여 출력합니다. 반올림은 반올림(round half up) 규칙을 따릅니다.