#abc261d. [abc261_d]Flipping and Bonus

[abc261_d]Flipping and Bonus

問題文

高橋君が NN 回コイントスを行います。 また、高橋君はカウンタを持っており、最初カウンタの数値は 00 です。

ii 回目のコイントスで表裏のどちらが出たかによって、次のことが起こります。

  • 表が出たとき:高橋君はカウンタの数値を 11 増やし、XiX_i 円もらう。
  • 裏が出たとき:高橋君はカウンタの数値を 00 に戻す。お金をもらうことは出来ない。

また、MM 種類の連続ボーナスがあり、ii 種類目の連続ボーナスではカウンタの数値が CiC_i になるたびに YiY_i 円もらうことができます。

高橋君は最大で何円もらうことができるかを求めてください。

制約

  • 1leqMleqNleq50001\\leq M\\leq N\\leq 5000
  • 1leqXileq1091\\leq X_i\\leq 10^9
  • 1leqCileqN1\\leq C_i\\leq N
  • 1leqYileq1091\\leq Y_i\\leq 10^9
  • C1,C2,ldots,CMC_1,C_2,\\ldots,C_M はすべて異なる。
  • 入力はすべて整数

入力

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

NN MM X1X_1 X2X_2 ldots\\ldots XNX_N C1C_1 Y1Y_1 C2C_2 Y2Y_2 vdots\\vdots CMC_M YMY_M

出力

高橋君がもらうことのできる金額の最大値を整数で出力せよ。


入力例 1

6 3
2 7 1 8 2 8
2 10
3 1
5 5

出力例 1

48

順に 表, 表, 裏, 表, 表, 表 が出た時、もらえる金額は次のようになります。

  • 11 回目のコイントスで表が出る。カウンタの数値を 00 から 11 にして、22 円もらう。
  • 22 回目のコイントスで表が出る。カウンタの数値を 11 から 22 にして、77 円もらう。さらに、連続ボーナスとして 1010 円もらう。
  • 33 回目のコイントスで裏が出る。カウンタの数値を 22 から 00 にする。
  • 44 回目のコイントスで表が出る。カウンタの数値を 00 から 11 にして、88 円もらう。
  • 55 回目のコイントスで表が出る。カウンタの数値を 11 から 22 にして、22 円もらう。さらに、連続ボーナスとして 1010 円もらう。
  • 66 回目のコイントスで表が出る。カウンタの数値を 22 から 33 にして、88 円もらう。さらに、連続ボーナスとして 11 円もらう。

このとき高橋君は合計で 2+(7+10)+0+8+(2+10)+(8+1)=482+(7+10)+0+8+(2+10)+(8+1)=48 円もらうことができ、このときが最大です。
連続ボーナスはカウンタの数値が CiC_i になるたびに何度でももらえることに注意してください。
ちなみに、66 回のコイントスで全部表が出た時は 2+(7+10)+(1+1)+8+(2+5)+8=442+(7+10)+(1+1)+8+(2+5)+8=44 円しかもらうことが出来ず、この時は最大ではありません。


入力例 2

3 2
1000000000 1000000000 1000000000
1 1000000000
3 1000000000

出力例 2

5000000000

答えが 3232 bit 整数型に収まらないこともあることに注意してください。