問題文


長さ の整数列 が与えられます。
整数 非負整数 に対して関数 は以下のように定義されます。

このとき、 の値を求めて下さい。 ただし、答えは非常に大きくなる場合があるので、 で割った余りを求めて下さい。

制約


  • 入力される値は全て整数である。

入力


入力は以下の形式で標準入力から与えられる。


出力


答えを一行に出力して、最後に改行せよ。

サンプル


入力1
2 1 1 1 -1
1 2
出力1
3

です。

入力2
2 5 1 1 -1
1 2
出力2
30
入力3
5 5 1 1 -2
3 1 4 1 5
出力3
170
入力4
7 314 15 9 -2
6 5 3 5 8 9 7
出力4
45643497

提出


Go (1.14)