N종류 카드가 같은 확률로 나오는 팩을 L개 살 때 각 카드 i를 D_i개 이상 모을 확률을 구해 유리수를 1e9+7로 나눈 값으로 출력한다.
그는 새로 나온 전략 카드 게임을 시작했다. 이 게임에서 카드를 얻으려면 카드가 정확히 한 장 들어 있는 카드 팩을 사야 한다. 팩을 뜯기 전에는 안에 든 카드를 알 수 없고, 게임에 있는 NNN 종류 중 한 장이 들어 있으며 모든 종류가 뽑힐 확률은 같다.
카드를 모으는 것으로 끝이 아니라 덱도 짜야 한다. 카드에 111번부터 NNN번까지 번호를 붙이면, 그가 원하는 덱을 모두 짜려면 iii번 카드가 적어도 DiD_iDi장 있어야 한다. 그래서 그의 목표는 모든 iii에 대해 iii번 카드를 DiD_iDi장 이상 모으는 것이다.
문제는 돈이다. 팩은 돈을 내고 사야 하고 그가 가진 돈은 넉넉하지 않다. 결국 그는 팩을 LLL개만 사기로 했다. 팩 LLL개를 뜯었을 때 그가 목표를 달성할 확률을 구하는 프로그램을 작성하라.
첫째 줄에 카드의 종류 수와 사려고 하는 카드 팩의 개수를 나타내는 두 자연수 NNN, LLL이 공백으로 구분되어 주어진다.
둘째 줄에 각 카드를 몇 장 모아야 하는지 나타내는 NNN개의 정수 D1,D2,…,DND_1, D_2, \dots, D_ND1,D2,…,DN이 공백으로 구분되어 주어진다.
1≤N≤30001 \le N \le 30001≤N≤3000, 0≤Di≤100 \le D_i \le 100≤Di≤10, 1≤L≤30001 \le L \le 30001≤L≤3000
그가 목표를 달성할 확률을 출력한다. 정확한 판정을 위해, 답을 기약분수 a/ba/ba/b로 나타냈을 때 (a×b−1) mod 1000000007(a \times b^{-1}) \bmod 1000000007(a×b−1)mod1000000007을 대신 출력한다. 여기서 b−1b^{-1}b−1은 100000000710000000071000000007을 법으로 하는 bbb의 곱셈에 대한 역원이다. 이 문제에서 주어지는 모든 입력에 대해 답이 존재한다.