만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

칼도리아의 기사들

시간 제한2초메모리 제한1024 MB

요약
n명의 기사를 줄 세우는 순위 중, 상위 l개 가문의 기사만으로 맨 아래 k_1+...+k_l자리를 채우는 경우가 없는 순위의 수를 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

유형
조합론, 동적 계획법, 수학
정답자
아직 제출이 없습니다

문제

칼도리아의 왕은 해마다 생일이면 왕국의 기사들을 큰 마상 시합에 초대하는 전통이 있다. 명문가마다 가장 뛰어난 기사를 보내 명성과 영광을 얻으려 한다. 대회가 끝나면 왕은 우승자만 고르지 않고, 전체 nn명의 기사를 최하위부터 최상위까지 순위대로 매긴다.

가문 ii에 속한 기사의 수를 kik_i로 나타낸다. 각 기사는 최대 한 가문에만 소속된다. 어느 가문에도 속하지 않은 기사가 있을 수도 있다. 가문은 왕국에서의 영향력 순서로 주어지며, 첫 번째 가문이 가장 영향력이 크다. 가장 강력한 가문의 기사 k1k_1명이 대회의 마지막 k1k_1자리를 차지하면, 그 가문은 왕과 왕관에 맞서 반란을 일으킨다. 두 번째 가문은 그만큼 강하지 않다. 그 가문의 기사 k2k_2명이 모두 최하위를 차지해도 큰 도발이기는 하지만, 단독으로 반란을 일으킬 수는 없다. 그러나 상위 두 가문의 기사가 모두 합쳐서 마지막 k1+k2k_1 + k_2자리를 차지하면, 두 가문은 손을 잡고 왕과 싸운다. 일반적으로 상위 ℓ\ell개 가문의 기사들이 마지막 k1+k2+⋯+kℓk_1 + k_2 + \dots + k_\ell자리를 차지하면 그들은 뭉쳐 반란을 일으킨다.

반란은 어떤 일이 있어도 막아야 한다. 왕은 종종 깊이 생각하지 않고 그 자리에서 순위를 정하므로, 왕실 수석 수학자에게 반란으로 이어지지 않는 순위가 몇 가지인지 세라는 임무가 맡겨졌다.

입력

첫 줄에 기사의 수 nn (1≤n≤1061 \leq n \leq 10^6)과 가문의 수 hh (0≤h≤50000 \leq h \leq 5000)가 주어진다. 이어서 hh개의 줄이 주어지며, ii번째 줄에는 가문 ii의 기사 수 kik_i (1≤ki≤n1 \leq k_i \leq n)가 하나의 정수로 주어진다. 모든 가문에는 적어도 한 명의 기사가 있다. 또한 ∑i=1hki≤n\sum_{i=1}^h k_i \leq n이 성립한다.

출력

반란으로 이어지지 않는 순위의 개수를 출력한다. 이 수가 매우 클 수 있으므로 109+710^9+7로 나눈 나머지를 출력한다.

예제3

  1. 예제 1

    입력
    3 0
    
    예상 출력
    6
    
  2. 예제 2

    입력
    4 1
    3
    
    예상 출력
    18
    
  3. 예제 3

    입력
    4 2
    2
    1
    
    예상 출력
    16