Consider an matrix where each cell has a number to indicate that you can jump down to a distance (measured as number of cells) between 1 and , either vertically, diagonally to the left, or diagonally to the right. If we call the upper left position, all the visited cells must have coordinates between 0 and for the rows (this includes a row below the last one), and between 0 and for the columns. The goal is to start at row 0, and get exactly to row . How many paths exist?
Input consists of several cases, each with , , and rows with natural numbers. Suppose that , and the are between 1 and 100.
For every case, print the number of paths that begin at any cell in the top row and end in any cell just below the bottom row, modulo .
Input
1 1 1 1 3 1 1 1 2 3 1 1 1 1 1 1 5 1 99 99 99 99 99 3 4 3 7 6 3 1 2 4 2 5 1 2 9
Output
1 7 17 16 110