Konkurs 16.10.10 - Ciąg


Treść
Dany jest ciąg ai liczb naturalnych. Wyrazy tego ciągu można policzyć z następującego ogólnego wzoru:
a1=b1
a2=b2
ak=bk
ai=c1 ai - 1 + c2 ai - 2 + … + ck ai - k (dla i>k)
gdzie bj i cj (1<=j<=k) są podanymi liczbami naturalnymi. Twoim zadaniem jest dla podanych bj, cj oraz n, obliczyć wartość an. Ponieważ an może być bardzo dużą liczbą, jako wynik należy podać an modulo 109 (miliard).


Wejście
Dane podawane są na standardowe wejście. W pierwszym wierszu podana jest liczba N (1<=N<=50) zestawów danych. Dalej podawane są zestawy danych zgodnie z poniższym opisem:

Jeden zestaw danych
Jeden zestaw danych obejmuje cztery wiersze. W pierwszym wierszu znajduje się liczba całkowita k (1<=k<=50). W drugim wierszu znajduje się k liczb całkowitych, oddzielonych pojedynczymi spacjami, odpowiednio b1,b2,…,bk (0<=bj<=109). W trzecim wierszu podanych jest k liczb całkowitych, oddzielonych pojedynczymi spacjami, odpowiednio c1,c2,…,ck (0<=cj<=109). W ostatnim, czwartym wierszu, znajduje się liczba całkowita n (1<=n<=109).

Wyjście
Wyniki programu powinny być wypisywane na standardowe wyjście. W kolejnych wierszach należy podać odpowiedzi obliczone dla kolejnych zestawów danych. Wynikiem dla jednego zestawu jest obliczona wartość an modulo 109.


Przykład

dane wejściowe:
3
3
6 6 3
5 8 9
2
3
8 8 2
3 7 5
5
3
0 2 2
3 9 4
4


wynik:
6
360
24