\begin{problem}{Playing Go}{standard input}{standard output}{4 seconds}{1024 megabytes}

Given $n$ points on a plane. Some of them are white, and some are black. No two points coincide. No three points lie on the same line.

You are required to move one of the white points a distance of $\leq r$ in such a way as to maximize the area of the convex hull of the set of points that you will have after this operation.

\InputFile
Each test consists of several test cases. The first line contains a single integer $t$ ($1 \le t \le 1\,000$)~--- the number of test cases. The description of the test cases follows.

The first line of each test case contains two integers $n$ and $r$ ($3 \le n \le 2\,000$, $1 \le r \le 10^9$)~--- the number of points and the maximum distance for moving a point.

The next $n$ lines describe the points. The $i$-th line contains three integers $x_i$, $y_i$, and $c_i$ ($-10^9 \le x_i, y_i \le 10^9$, $1 \le c_i \le 2$)~--- the coordinates and color of point $i$ (1 ~--- white, 2 ~--- black).

It is guaranteed that the sum of $n$ over all test cases in each test does not exceed $2\,000$.

\OutputFile
For each test case, output a single number on a separate line~--- the maximum area of the convex hull of this set of points, if any of the white points can be moved by no more than $r$.

Your answer will be considered correct if its absolute or relative error does not exceed $10^{-6}$.

Formally, let your answer be $a$, and the jury's answer be $b$. Your answer will be accepted if and only if $\frac{|a - b|}{\max{(1, |b|)}} \le 10^{-6}$.

\Examples

\begin{example}
\exmpfile{example.01}{example.01.a}%
\exmpfile{example.02}{example.02.a}%
\exmpfile{example.03}{example.03.a}%
\end{example}

\Note
Below are images for the examples from the statement. The dashed line indicates the edges of the new convex hull, the solid line indicates the edges of the old convex hull and the common edges. The blue arrow shows the optimal movement of the white point.

\begin{center}
\includegraphics[scale=0.9]{drawH.1}

\small{Example 1}
\end{center}

\begin{center}
\includegraphics[scale=0.6]{drawH.2}

\small{Example 2}
\end{center}

\begin{center}
\includegraphics[scale=0.6]{drawH.3}

\small{Example 3}
\end{center}

\Scoring
The tests for this problem consist of nine groups. Points for each group are awarded only if all tests in the group and all tests in some of the previous groups are passed. Note that passing the tests from the statement may not be required for some groups. \textbf{Offline checking} means that the results of testing your solution on this group will only be available after the competition ends.

Let $\sum n$ be the sum of $n$ over all test cases of this test.

\medskip
\begin{center}
\begingroup
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{|c|c|c|c|c|c|}
\hline
& & \multicolumn{1}{c|}{Constraints} & & \\
\cline{3-3}
\raisebox{2.25ex}[0cm][0cm]{Group}
& \raisebox{2.25ex}[0cm][0cm]{Points}
& $\sum n$
& \raisebox{2.25ex}[0cm][0cm]{\parbox{1.5cm}{\centering Required}}
& \raisebox{2.25ex}[0cm][0cm]{Comment}
\\
\hline
0       & 0     & --                & --       & Samples             \\
\hline
1       & 11     & $\sum n \le 3$    & 0        &                               \\
\hline
2       & 18    & $\sum n \le 30$   & 0, 1 &                               \\
\hline
3       & 6    & $\sum n \le 50$   & 0, 1, 2 &                               \\
\hline
4       & 13     & $\sum n \le 200$  & --       & All points on the convex hull are black \\
\hline
5       & 14    & $\sum n \le 200$  & 0 -- 4 &                               \\
\hline
6       & 8     & $\sum n \le 500$  & 4        & All points on the convex hull are black \\
\hline
7       & 7    & $\sum n \le 500$  & 0 -- 6 &                               \\
\hline
8       & 12    & $\sum n \le 2000$ & 4, 6     & \parbox{8cm}{\centering \vspace{2mm} {All points on the convex hull are black. \\ \textbf{Offline checking}}\vspace{2mm}}  \\
\hline
9       & 11   & $\sum n \le 2000$ & 0 -- 8 & \textbf{Offline checking}    \\
\hline
\end{tabular}
\endgroup
\end{center}

\end{problem}

