#P3735. Recursive Sequence

Recursive Sequence

Problem Description

Given two integers N and M, we define a recursive sequence g[i] (indexed from 0) as follows:
(1) If 0 <= i < M, then g[i] = a[i]
(2) If i >= M, then g[i] = b[0]*g[i-M] + b[1]*g[i-M+1] + ... + b[M-1]*g[i-1]
Now your task is very simple: Try to find g[N] mod 1,000,000,003.

Input

The first line of input is an integer T (1 <= T <= 10), which is the number of test cases. T cases follow.
For each case, the first line are two integers M(1 <= M <= 1000) and N(M <= N <= 1,000,000,000). Two lines followed, each of which contains exactly M integers. The first M integers are a[0], a[1], ..., a[M-1], and the last M integers are b[0], b[1], ..., b[M-1], where 0 <= a[i], b[i] < 1,000,000,003.

Output

For each case, output a single line contain g[N] mod 1,000,000,003.

2

1 5 1 2

2 7 0 1 1 1

</p>
32 13 Hint Sample #0: You can easily find that g[i] = 2^i, so g[5] = 32 Sample #1: g[i] is the i-th fibonacci number, so g[6] = 13

Author

wywcgs @ HIT & XMU