Discrete Speed

No attempts yetTime limit8sMemory limit128 MB

Problem

Consider car trips in a country that has no friction. The cars here have no engine: once a car starts moving at some speed, it keeps moving at exactly that speed. At certain points along the roads there are acceleration devices that let a car increase or decrease its speed by $1$, or keep it unchanged. Your task is to find the route that takes the least time to travel from a start city to a goal city.

The country has several cities connected by a road network, and every city has an acceleration device. Thus, if a car enters a city at speed $v$, it leaves that city at speed $v-1$, $v$, or $v+1$. The very first road leaving the start city must be driven at speed $1$, and likewise the very last road entering the goal city must be driven at speed $1$.

When the car reaches a city it may not immediately turn back onto the road it just used to get there (no U-turns are allowed). Apart from that, any route through the network is allowed: the same city may be visited more than once, the same road may be used more than once, and the start and goal cities may be passed through during the trip.

Each road has a distance and a speed limit. A car must drive a road at a speed no greater than that road's speed limit, and the speed is always a positive integer. The time to drive a road equals its distance divided by the speed used. The time spent inside cities (including accelerating or decelerating) is ignored.

Input

The input consists of multiple datasets. Each dataset has the following format.

n m
s g
x1 y1 d1 c1
...
xm ym dm cm

Every value is a non-negative integer, and values on the same line are separated by a single space.

The first line gives the size of the road network. $n$ is the number of cities, with $2 \le n \le 30$. $m$ is the number of roads, which may be $0$.

The second line describes the trip. $s$ is the index of the start city and $g$ is the index of the goal city, with $s \ne g$. Every city index in a dataset lies between $1$ and $n$ inclusive.

Each of the next $m$ lines describes one road. Road $i$ connects cities $x_i$ and $y_i$, has distance $d_i$ ($1 \le d_i \le 100$), and has speed limit $c_i$ ($1 \le c_i \le 30$). No two roads connect the same pair of cities, no road connects a city to itself, and every road can be driven in both directions.

The end of the input is a line containing two zeros separated by a space.

Output

For each dataset, print exactly one line.

If the goal city can be reached from the start city, print the time of the fastest route, rounded to exactly five digits after the decimal point (round half up). Otherwise, print the string unreachable in all lowercase.

Do not print any extra characters such as trailing spaces.