#arc117b. [arc117_b]ARC Wrecker

[arc117_b]ARC Wrecker

問題文

AtCoder 街道には NN 個のビルが建設されています。最初、左から ii 番目のビルは AiA_i 階建てです。

ARC 解体業者の社長である高橋君は、以下の操作を好きな回数だけ行うことができます。11 回も操作を行わないことも可能です。

  • 好きな正の整数 XX を選び、XX 階の高さから大砲を発射する。そのとき、現時点で XX 階建て以上であるすべてのビルについて、階数が 11 減少する。

あり得る最終的なビルの景観の数を 109+710^{9} + 7 で割った余りを求めてください。

ただし、景観 A と景観 B が異なるとは、以下のことを指します。

  • 景観 A における、左から ii 番目のビルの高さを PiP_i とする。
  • 景観 B における、左から ii 番目のビルの高さを QiQ_i とする。
  • PineqQiP_i \\neq Q_i となる ii11 つでも存在する場合、景観 A と景観 B は異なる。

制約

  • 1leqNleq1000001 \\leq N \\leq 100000
  • 1leqAileq1091 \\leq A_i \\leq 10^{9}
  • 入力はすべて整数

入力

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

NN A1A_1 A2A_2 cdots\\cdots ANA_N

出力

答えを出力してください。


入力例 1

2
1 2

出力例 1

4

操作後のビルの高さとしてあり得るものは、以下の 44 通りです。

  • (ビル 11 の階数, ビル 22 の階数) = (0,0)(0, 0)
  • (ビル 11 の階数, ビル 22 の階数) = (0,1)(0, 1)
  • (ビル 11 の階数, ビル 22 の階数) = (1,1)(1, 1)
  • (ビル 11 の階数, ビル 22 の階数) = (1,2)(1, 2)

入力例 2

6
5 3 4 1 5 2

出力例 2

32

入力例 3

7
314 159 265 358 979 323 846

出力例 3

492018656

全部で 2019249216000020192492160000 通りの景観があり得ますが、それを 109+710^{9} + 7 で割った余りである 492018656492018656 を出力すると正解になります。