로봇 업그레이드
시간 제한1초메모리 제한2048 MB
N개 부품마다 0 이상 M 이하의 업그레이드 횟수를 정할 때, 각 i에 대해 i회 이상 업그레이드된 부품이 A_i개를 넘지 않는 경우의 수를 998244353으로 나눈 나머지로 구합니다.
문제
ICPC 왕국이 악성 풍선의 공격을 받고 있다! 다행히 로봇 모건이 왕국을 지킬 준비를 마쳤다. 힘을 키우기 위해 업그레이드할 수 있는 부품이 개 있으며, 각 부품은 1번부터 번까지 번호가 매겨져 있다. 각 부품은 0번부터 번까지(양 끝 포함) 업그레이드할 수 있다.
자원을 아끼기 위해 모건의 업그레이드에는 개의 제한 조건이 있으며, 1번부터 번까지 번호가 매겨져 있다. 제한 조건 에 대해, 번 이상 업그레이드된 부품의 개수는 를 넘을 수 없다.
아드리안은 모건에게 어떤 업그레이드를 적용할지 계획하면서, 모든 제한 조건을 만족하는 업그레이드 구성이 몇 가지인지 궁금해한다. 두 구성은 적어도 한 부품의 업그레이드 횟수가 다를 때에만 서로 다른 구성이다. 답이 클 수 있으므로 으로 나눈 나머지를 구한다.
입력
첫 줄에 두 정수 과 이 주어진다 (, ). 다음 줄에는 제한 조건을 나타내는 정수 이 주어진다 (). 이 값들은 비증가 순서, 즉 으로 주어진다.
출력
모든 제한 조건을 만족하는 업그레이드 구성의 수를 으로 나눈 나머지를 한 줄에 출력한다.