Study Time Allocation

No attempts yetTime limit1sMemory limit256 MB

Problem

You have HH hours to study before the exams, and you want the highest possible GPA. Splitting those hours across your courses is the whole job. If an A in one course costs a huge number of hours while every other course gives an A for very little, taking a C in that one course and collecting A's everywhere else pays off.

For each course you are given the study time every letter grade requires. If you spend at least the hours a grade requires in a course, you get that grade. If you do not even reach the hours required for a D, you get an F. The grade points are 4.0 for A, 3.7 for A-, 3.3 for B+, 3.0 for B, 2.7 for B-, 2.3 for C+, 2.0 for C, 1.7 for C-, 1.3 for D+, 1.0 for D, and 0.0 for F. The GPA is the average of the grade points over your nn courses.

Find the largest GPA you can reach by dividing the HH hours among the courses. Hours given to one course cannot be used for another, and you may leave hours unused.

Input

The first line contains the number of data sets KK (1K1001 \le K \le 100).

The first line of each data set contains two integers nn and HH separated by a space, the number of courses you are taking and the number of hours available for studying (1n101 \le n \le 10, 0H1000 \le H \le 100).

Each of the next nn lines contains 10 integers. The integers on line ii give, in this order, the hours you must study to get A, A-, B+, B, B-, C+, C, C-, D+, D in course ii. The 10 integers on a line are non-increasing, and each of them is between 0 and 100.

Output

For each data set, print Data Set x: on a line of its own, where xx is the number of the data set counting from 1. On the next line print the largest GPA you can reach, with exactly two digits after the decimal point.

Round the GPA at the third digit after the decimal point. When the discarded part is exactly 0.0050.005, round up. Pad with zeros so that two digits always follow the decimal point.

Print one blank line after each data set.