First Knight

Archibald and Adalbert are inseparable friends and the best knights of the whole kingdom. Competitive as they are, they occasionally engage in a little open-air sword ght, just to determine who among them really is the rst knight. Of course, neither Adalbert nor Archibald wins, but they keep themselves busy for quite a while and get around in the surroundings. You have to calculate about how long their next ‘ght’ will last. All the action takes place in a rectangular area which, for the sake of simplicity, is divided into unit squares numbered from (1, 1) to (m, n). Starting at (1, 1), the knights move from one square to one of the at most four adjacent squares, and nish as soon as they reach (m, n) where the tavern is located. At each square, it is largely a matter of chance where the ght will continue, but it also depends on the environment (for example, if a certain direction is uphill). Our model uses probabilities to decide into which adjacent square the ght will move next. (For example, an uphill direction has a lower probability.) It is your job to calculate the expected number of moves that are needed before the tavern is reached. You can assume that every move is independent of the directions chosen in the previous moves. Input The input consists of a sequence of rectangular areas. Each area starts with a line containing the dimensions of the rectangle m and n, where 1 ≤ m, n ≤ 40. Four blocks follow that state the probability of a move in each direction. Every block contains m lines, and each line contains n numbers p(k), where i,j 0≤p(k) ≤1forall1≤i≤mand1≤j≤nand1≤k≤4. Theprobabilitiesinblockkarearranged i,j as follows: p(k) 1,1 p(k) 2,1 . p(k) m,1 thisis(i+1,j),inblock2itis(i,j+1),inblock3itis(i−1,j)andinblock4itis(i,j−1). For each square (i, j) except the tavern (m, n), the probabilities p(k) add up to 1 and at least one of p(1) or i,j p(k) p(k) 1,2 1,3 p(k) p(k) 2,2 2,3 . . . . . . . . ... p(k) p(k) 1,n−1 1,n p(k) p(k) 2,n−1 2,n . . p(k) p(k) m,2 m,3 p(k) p(k) m,n−1 m,n . . . The number p(k) gives the probability of a move from square (i,j) to the next square: In block 1 p(2) is not 0. (This ensures that the tavern will nally be reached with probability 1.) You may assume i,j that the probability of moving outside the rectangle is 0, as are p(k) for all k. The sequence of areas is m,n followed by a line containing two zeros. Output For each area, output a line containing the expected number of moves from (1,1) to (m,n). This number must have an absolute error less than 0.1 compared to the exact answer that is always less than 1000000. Sample Input 22 0.01 0.50 0.00 0.00 i,j i,j

2/2 0.99 0.00 0.50 0.00 0.00 0.00 0.50 0.00 0.00 0.50 0.00 0.00 15 0.0 0.0 0.0 0.0 0.0 1.0 0.1 0.7 0.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.9 0.3 0.5 0.0 33 0.000001 0.0 1.0 0.0 1.0 1.0 0.0 0.0 0.0 0.999999 1.0 0.0 1.0 0.0 0.0 0.000001 0.000001 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.999999 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.999999 0.0 00 Sample Output 4.0 41.142857142857146 7.999994000002