Guarding the Border

No attempts yetTime limit3sMemory limit256 MB

Problem

As the newly appointed chief of security, you have decided to upgrade the border defense. Neighbouring countries are rumoured to be building nuclear weapons, so a few more archer towers are needed. To spot intruders while they are still approaching, you want the largest distance between two adjacent towers to be as small as possible.

The border runs from 00 to LL and closes on itself, so treat it as a loop of circumference LL. The country is landlocked, so the first and the last tower are neighbours as well: the coordinates 00 and LL are the same place. NN old towers already stand on the border. The budget pays for at most MM new towers, and you may put each of them anywhere on the border, not only at an integer coordinate. After the placement, find the smallest possible value of the largest distance between two adjacent towers.

If a single tower stands on the loop, it is its own neighbour and the distance between adjacent towers is LL.

Input

The first line contains the number of test cases TT. Each of the following TT lines describes one test case. A line starts with three integers NN, MM and LL. NN is the number of towers already standing on the border, MM is the largest number of new towers you may place, and LL is the length of the border. The NN positions tit_i of the current towers follow on the same line.

  • 0<T1000 < T \le 100
  • 0N200000 \le N \le 20000
  • 0<M200000 < M \le 20000
  • 0<L100000000 < L \le 10000000
  • 0ti<L0 \le t_i < L, written with at most 6 digits after the decimal point
  • No two towers stand at the same position.

Output

For each test case print one line with the smallest possible value of the largest distance between two adjacent towers, rounded to exactly 6 digits after the decimal point. An answer of 55 is printed as 5.000000. Every answer in the test data is more than 10910^{-9} away from a point where the rounding direction changes, so double precision arithmetic produces the same output.