時間制限 : sec, メモリ制限 : KB
Japanese

ボールの回収

野球部員のユアサ君は、帰宅する前にグラウンドに散らばったボールをすべて回収しなければなりません。グラウンドを2次元平面で、ボールを平面上の点で表します。はじめは、ユアサ君は原点にいます。また、$i$番目のボールは座標($x_i, y_i$)にあり、x方向に秒速$s_i$、y方向に秒速$t_i$で動いています。ボールは座標が同じになっても衝突せず、お互いの移動に影響しません。

ユアサ君は常に秒速$v$で移動します。彼は、最初に移動する方向を任意に決めることができます。その後、ボールを回収したときに限り移動の方向を任意に変えることができます。ユアサ君がボールと同じ座標にいれば、そのボールを0秒で回収できます。すべてのボールを回収するためにかかる最小の秒数を求めてください。

ボールの個数とその座標と速度、ユアサ君の移動速度が与えられたとき、すべてのボールを回収するために必要な最小の秒数を求めるプログラムを作成せよ。

入力

入力は以下の形式で与えられる。

$N$ $v$
$x_1$ $y_1$ $s_1$ $t_1$
$x_2$ $y_2$ $s_2$ $t_2$
:
$x_N$ $y_N$ $s_N$ $t_N$

1行目に、回収したいボールの数$N$ ($1 \leq N \leq 8$)と、ユアサ君の速さ$v$ ($2 \leq v \leq 1,000$)が整数で与えられる。続く$N$行に、$i$番目のボールが最初にある座標$x_i, y_i$ ($-1,000 \leq x_i, y_i \leq 1,000$)と、x方向、y方向それぞれに動く速度$s_i, t_i$ ($-30 \leq s_i, t_i \leq 30$)が、すべて整数で与えられる。ただし、${s_i}^2+{t_i}^2 \leq \sqrt v$とする。

出力

すべてのボールを回収するために必要な最小の秒数を実数で1行に出力する。ただし、誤差がプラスマイナス 0.0001を超えてはならない。

入出力例

入力例1

2 2
2 0 -1 0
1 2 -1 0

出力例1

2

入力例2

2 2
2 0 1 0
2 2 0 1

出力例2

6.23927

Note

Algorithm