In a country, there is a number of cities connected by roads. Due to
insufficient budget, some roads are covered with pot-holes, so certain
cars cannot use certain roads. Thus each road has the height number
associated with it — that is the minimal height of the bottom of a car
that can drive through that road. On the other hand, some roads are private,
and one should pay for using them. Luckily, the amount to be paid is
standartized and equals one standard unit. Finally, for each road, the time
required to drive through it is known.
Given that you have to drive from city s to city t using no more than
maxtime minutes of time, no more than money standard units, find the
minimal height of the bottom of the car which makes it possible.
The number of cities n (1 ≤ n ≤ 100), the number of roads m
(1 ≤ m ≤ 104), and the numbers of starting and ending cities s
and t (1 ≤ s, t ≤ n) are given on the first line of the input.
The second line contains money (0 ≤ money ≤ 106) and maxtime
(0 ≤ maxtime ≤ 106).
Each of the next m lines has the form ui vi ci ti hi.
Here, ui is the starting city for i-th road, vi is the ending city,
ci is 1 if it is a private road and 0 otherwise, ti is the time
required to drive through that road, and hi is the height of the car
required to pass (1 ≤ ui, vi ≤ n, 0 ≤ ti ≤ 104 and
0 ≤ hi ≤ 106). Note that the roads are unidirectional. All the
numbers in the input are integers.
If there is no way to drive from s to t under given restrictions,
output "−1". Otherwise write on the first line the minimal height
of the car; the second line should contain the number of roads used to travel
from s to t; and the third line must be filled by the numbers of the roads
you used in the order of usage. Roads are numbered from 1 to m; the
order is the same as in input.
2 2 1 2
1 2 1 100 77
1 2 1 100 66
2 2 1 2
1 2 0 101 77
1 2 1 100 66
Problem Author: Dmitry Gozman
Problem Source: Dmitry Gozman Contest 1, Petrozavodsk training camp, January 2007