Spaceship
Bessie the cow has been abducted by aliens and is now trapped inside an alien spaceship! The spaceship has n rooms labelled 1...n, with one-way doors connecting between some pairs of rooms (due to the strange alien technology at play, it is even possible for a door to lead from a room back to itself!). However, no two doors share the same starting and end room. Additionally, Bessie has a remote with buttons numbered 1...k.
The aliens will release Bessie if she can complete a strange task. First, they will choose two rooms, s and t, and two numbers b[s]
and b[t]
(1 ≤ b[s]
, b[t]
≤ k). They will start Bessie in room s and immediately have her press button b[s]
. Bessie will then proceed to navigate the ship while pressing buttons. There are a few rules for what Bessie can do:
In each room, after pressing exactly one button, she must choose to either exit through a door to another (possibly the same) room or stop.
Once Bessie presses a button, it is invalid for her to press the same button again unless, in the time between uses, she has pressed a button with a higher number. In other words, pressing button number x will make it unavailable for use, while all buttons with numbers < x will be reset and again available for use.
If Bessie presses an invalid button, she automatically fails and the aliens will keep her.
Bessie is released only if she stops in room t, the last button she pressed was b[t]
and no invalid buttons were ever pressed.
Bessie is worried that she may not be able to complete the task. For q queries, each consisting of what Bessie considers a likely choice of s, t, b[s]
and b[t]
, Bessie wants to know the number of sequences of rooms and button presses that would lead to her release. Report your answers modulo 10^9
+ 7 as they may be very large.
Input
The first line contains n (1 ≤ n ≤ 60), k (1 ≤ k ≤ 60), q (1 ≤ q ≤ 60). The next n lines each contain n bits (each 0 or 1). The j-th entry of the i-th line is 1 if there exists a door from room i to room j, and 0 if no such door exists.
This is followed by q lines, each containing four integers b[s]
, s, b[t]
, t (1 ≤ s, t ≤ n), denoting the starting button, starting room, final button, and final room respectively.
Output
The number of sequences for each of the q queries modulo 10^9
+ 7 on separate lines.
Example
The doors connect rooms 1 → 2, 2 → 3, 3 → 4, 4 → 5 and 6 → 6.
For the first query, Bessie must stop immediately after pressing the first button.
For the second query, the answer is clearly zero because there is no way to get to room 1 from room 3.
For the third query, Bessie's only option is to move from room 1 to room 2 to room 3 while pressing buttons 1, 2 and 3.
For the fourth query, Bessie's pattern of movement is fixed, and she has three possible sequences of button presses:
(1,2,3,2,1) (1,2,1,3,1) (1,3,1,2,1)
For the last query, Bessie has five possible sequences of button presses:
(2) (2,3,2) (2,3,1,2) (2,1,3,2) (2,1,3,1,2)