You are competing in a robot contest. The contest gives you a disc shaped robot placed on a flat field, and several poles stand on that field. The robot moves in any direction but cannot pass through a pole. It can turn around a pole while touching it.
Find the length of the shortest path the robot takes to reach the goal. The length of the path is the distance travelled by the center of the robot. The radius of the robot is 100 and the thickness of a pole is ignored, so the center of the robot always stays at distance 100 or more from every pole. A position where that distance is exactly 100 is allowed. When two poles are closer to each other than the diameter of the robot, the robot cannot pass between them.
The input is a single test case.
N Gx Gy
x1 y1
...
xN yN
The first line has three integers. N is the number of poles, with 1≤N≤8. (Gx,Gy) is the goal position. The robot starts with its center at (0,0) and finishes when its center reaches (Gx,Gy). The starting position and the goal position are different.
Each of the next N lines has two integers. (xi,yi) is the position of the i-th pole. Every coordinate satisfies −1000≤Gx,Gy,xi,yi≤1000. No pole stands within distance 100.01 of the starting position or of the goal position. For the distance di,j between the i-th pole and the j-th pole with i=j, either 1≤di,j<199.99 or 200.01<di,j holds.
Print the length of the shortest path to the goal on one line, rounded to exactly five digits after the decimal point. If the robot cannot reach the goal, print 0.00000.