Bog 有三大人生爱好:昆虫、数学、精确与效率。他最近的爱好促使他想要将前两者结合起来,于是 Bog 决定收养一只微分蚱蜢,一个他取名为 Dydx 的可爱小绿家伙。
为了让 Dydx 开心,Bog 为它建造了一个小窝。他买了一个喷水器,可以浇灌半径为 $R$ 的圆内的任何植物,并在该圆内种植了 $N$ 种作物。
Dydx 非常喜欢它的新家!但 Bog 意识到,这只蚱蜢只会待在包含所有作物的最小凸多边形所定义的区域内。现在他后悔没有把作物种得更分散一些。幸运的是,Bog 设法找到了最后一株还没种下的作物。Bog 希望你通过在喷水器的范围内种植这最后一株作物,来最大化 Dydx 可以活动的区域面积。
输入格式
第一行包含两个整数 $N$ 和 $R$ ($1 \le N, R \le 10^4$),分别表示已种植作物的数量和喷水器定义的圆的半径。作物在二维平面上表示为点,其中 $(0, 0)$ 是喷水器的坐标。
接下来的 $N$ 行,每行描述一株作物,包含两个整数 $X$ 和 $Y$,表示作物种植在坐标 $(X, Y)$ 处。$(X, Y)$ 到 $(0, 0)$ 的欧几里得距离最多为 $R$。没有两株作物位于同一位置。
输出格式
输出一行,表示在喷水器范围内种植最后一株作物后,Dydx 可以活动的区域的最大面积。输出的绝对或相对误差不得超过 $10^{-9}$。
注意,添加的作物不需要具有整数坐标。
样例
输入 1
4 1000 -1000 0 0 0 1000 0 0 -1000
输出 1
2000000.000000000000000
输入 2
2 100 17 7 19 90
输出 2
4849.704644437563740
输入 3
1 100 13 37
输出 3
0.0