#arc059c. [arc059_c]Children and Candies

[arc059_c]Children and Candies

問題文

競プロ幼稚園には11NNの番号がついたNN人の子供がいます。えび先生は、区別できないCC個のキャンディーを子供たちに分配することにしました。子供iiの_はしゃぎ度_がxix_iの時、キャンディーをaa個もらうと子供iiの_うれしさ_はxiax_i^aになります。幼稚園の活発度_はNN人の子供たちの_うれしさ_のになります。各子供にキャンディーを非負整数個配ってC個配りきる方法それぞれに対して_幼稚園の活発度_を計算して、その総和を子供たちの_はしゃぎ度x1x_1,..,xNx_Nの関数とみてf(x1,..,xN)f(x_1,..,x_N)とおきます。Ai,Bi(1iN)A_i,B_i (1≦i≦N)が与えられるので、 109+710^9+7で割ったあまりを求めてください。

制約

  • 1N4001≦N≦400
  • 1C4001≦C≦400
  • 1AiBi400(1iN)1≦A_i≦B_i≦400 (1≦i≦N)

部分点

  • Ai=Bi(1iN)A_i=B_i (1≦i≦N) を満たすデータセットに正解した場合は、部分点として400400 点が与えられる。

入力

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

NN CC A1A_1 A2A_2 ... ANA_N B1B_1 B2B_2 ... BNB_N

出力

の値を109+710^9+7で割ったあまりを出力せよ。


入力例 1

2 3
1 1
1 1

出力例 1

4

Ai=BiA_i=B_iなので部分点の条件を満たします。 子供11,22の_はしゃぎ度_が共に11のもの(f(1,1)f(1,1))を考えればよく、この時、

  • 子供1100個,子供2233個のキャンディーをあげると、_幼稚園の活発度_は10\*13=11^0\*1^3=1
  • 子供1111個,子供2222個のキャンディーをあげると、_幼稚園の活発度_は11\*12=11^1\*1^2=1
  • 子供1122個,子供2211個のキャンディーをあげると、_幼稚園の活発度_は12\*11=11^2\*1^1=1
  • 子供1133個,子供2200個のキャンディーをあげると、_幼稚園の活発度_は13\*10=11^3\*1^0=1

従ってf(1,1)=1+1+1+1=4f(1,1)=1+1+1+1=4となり、ffを足し合わせた答えは44です。


入力例 2

1 2
1
3

出力例 2

14

子供が一人なので、子供11の_うれしさ_が_幼稚園の活発度_になります。また、キャンディの配り方は2つとも子供11にあげる11通りしかないため、この時の_幼稚園の活発度_はffの値に等しくなります。

  • 子供11の_はしゃぎ度_が11の時、f(1)=12=1f(1)=1^2=1
  • 子供11の_はしゃぎ度_が22の時、f(2)=22=4f(2)=2^2=4
  • 子供11の_はしゃぎ度_が33の時、f(3)=32=9f(3)=3^2=9

従って答えは1+4+9=141+4+9=14となります。


入力例 3

2 3
1 1
2 2

出力例 3

66

f(1,1)=4,f(1,2)=15,f(2,1)=15,f(2,2)=32f(1,1)=4 , f(1,2)=15 , f(2,1)=15 , f(2,2)=32 となることがわかるので、答えは4+15+15+32=664+15+15+32=66になります。


入力例 4

4 8
3 1 4 1
3 1 4 1

出力例 4

421749

部分点の条件を満たします。


入力例 5

3 100
7 6 5
9 9 9

出力例 5

139123417