목공

N개의 널빤지가 필요한 상자를 분해할 때 회수되는 널빤지 수의 확률이 주어질 때, M개의 널빤지로 시작해 만들 수 있는 상자 개수의 기댓값을 구한다.

어려움8동적 계획법확률수학아직 제출이 없습니다시간 제한7초메모리 제한512 MB

문제

목공을 시작한 그는 기본기를 다지려고 나무 상자 만들기를 반복한다. 나무 상자 하나는 나무판자 NN개를 이어 붙여 만든다. 다 만든 상자는 자리만 차지하므로 곧바로 분해해서, 나온 판자를 다음 상자에 쓴다.

상자를 분해해서 얻는 온전한 판자의 수는 항상 NN개보다 적고, 분해가 늘 깔끔하게 되지는 않아 그 수는 확률적으로 정해진다. 0i<N0 \le i < N인 모든 ii에 대해 판자를 ii개 얻을 확률은 정수 qiq_i에 비례하며, qi/(q0+q1++qN1)q_i / (q_0 + q_1 + \dots + q_{N-1})로 계산된다.

그는 지금 판자 MM개를 가지고 있고, 더 이상 상자를 만들 수 없을 때까지 계속 상자를 만든다. 그가 만드는 상자 개수의 기댓값을 구하는 프로그램을 작성하라.

입력

첫째 줄에 상자 하나를 만드는 데 필요한 판자의 수 NN과 그가 가진 판자의 수 MM이 공백으로 구분되어 주어진다.

다음 NN개 줄 중 ii번째 줄에는 상자를 분해해서 판자를 i1i-1개 얻을 확률에 비례하는 음이 아닌 정수 qi1q_{i-1}이 주어진다.

1N160001 \le N \le 16000, 0M10120 \le M \le 10^{12}이고, q0+q1++qN1q_0 + q_1 + \dots + q_{N-1}11 이상 10910^9 이하이다.

출력

그가 만드는 상자 개수의 기댓값을 출력한다. 정확하게 채점하려고, 답을 기약분수 a/ba/b로 나타냈을 때 (a×b1)mod1092616193(a \times b^{-1}) \bmod 1092616193을 대신 출력한다. 여기서 1092616193=221×521+11092616193 = 2^{21} \times 521 + 1은 소수이고, b1b^{-1}은 이 소수를 법으로 하는 bb의 곱셈 역원이다. 이 문제에서 주어질 수 있는 모든 입력에 대해 답은 존재한다.

힌트

첫 번째 예제의 답을 기약분수로 나타내면 3/23/2이다.