Recurrence Solver
View as PDFA linear homogeneous recurrence relation of order 
with constant coefficients has the seed values
 with further terms defined according to
. For example, let 
.
This means that the first two terms 
 and 
 have specified
values. Let 
, then all terms 
 for 
 are
defined as 
. When 
 and 
,
the sequence begins 
 : the Fibonacci
sequence.
Given the values of , and 
and a non-negative integer 
, can you determine the term 
 in
this sequence, modulo 
?
Input Specification
The first line of input contains two integers separated by a space,  
 and 
 
.
Each of the following  lines contains one integer 
. They are given in the order 
.
Each of the following  lines contains one integer 
. They are given in the order 
.
Output Specification
Output a single line containing .
Note that although the mod operator in your language may give negative
results, the answer should be a non-negative integer.
Sample Input
2 10
2 1
1 1
Sample Output
123
Explanation
This sequence is defined according to , and
 where 
. This is the sequence of
so-called Lucas numbers, beginning 
.
(This question was also used in the PEG short questions homework packages.)
Comments
the integers after the first line appear as 1 on each line for 2*d lines as the input specification states, not space separated as the sample input shows. irrelevant to c++ input but slightly misleading for me when I tried to do this with python.