FPOLICE  Fool the Police
Dhamaka Singh (a crook) has just robbed a bank and would like to get out of the country as soon as possible. But there is a slight problem, the police! On his way out of the country he has to pass through some police stations. Each police station has a certain risk (for Dhamaka Singh) associated with it. He wants to get to the airport within a certain time T or else he'll miss his flight. He also wants to take a path that minimizes the total risk associated with it. Help Dhamaka Singh get out of the country.
Input
The first line of the input contains an integer t, the number of test cases. t test cases follow.
The first line of each test case contains 2 integers N (3 <= N <= 100) and T (1 <= T <= 250), denoting the number of police stations and the total time he has to reach the airport, respectively.
Dhamaka Singh has to start from the first police station and reach the N^{th} one (the airport is just after the N^{th} police station). You can consider the time taken between the N^{th} police station and the airport to be negligible.
Next there are N lines with N numbers in each line, separated by single spaces. All numbers are separated by a single space. The j^{th} integer in the i^{th} line represents the time taken to reach the j^{th} police station from the i^{th} police station.
Next there are another N lines with N numbers in each line. All numbers are separated by a single space. The j^{th} integer in the i^{th} line represents the risk involved in travelling to the j^{th} police station from the i^{th} police station.
Output
For each test case output one line containing 2 integers separated by a single space.
The first integer denotes the minimum total risk to reach the airport. The second integer denotes the minimum time required to reach the airport at the minimum total risk.
If it is impossible to reach the airport within time T (inclusive), just print "1" (quotes for clarity).
Example
Input: 1 4 10 0 6 2 3 6 0 2 3 3 1 0 2 3 3 2 0 0 2 2 7 2 0 1 2 2 2 0 5 7 2 5 0 Output: 4 9
hide comments
mrolympia:
20140329 08:54:04
AC in first attempt with Dijkstra :) 

JordanBelfort:
20140204 18:04:59
nice dp :)


Vipul Pandey:
20140131 20:49:16
same as fisher. 

Abhishek Gupta:
20140123 13:44:33
after 8 WA i finally did it with BellmanFord...in 0.01 sec :)


Himank Agrawal:
20131225 16:03:20
can path be like 1>3>2>4 or it should be in increasing order ? 

Avaneesh Rastogi:
20131019 12:44:53
For those wondering how the output is 4 9 , the path is


coding_express:
20130527 13:11:50
please say how to optimise 

Aradhya:
20130527 11:19:57
hell yeah i did this with recursion.. my first recursion handling 2D arrays :) 

Rocker3011:
20120805 18:17:07
do not copy and paste from FISHER... many WA because of that :D! 

Rajesh Dhania:
20120529 15:57:40
Can anyone please tell me the complexity of the problem? 
Added by:  Matthew Reeder 
Date:  20061029 
Time limit:  1.411s 
Source limit:  30000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel G860) 
Languages:  All except: ERL JSRHINO NODEJS PERL6 VB.NET 
Resource:  AlKhawarizm 2006 