선우의 셋리스트

아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

선우는 아주대학교의 33년 만의 대동제를 맞아 공연으로 노래를 열창해 아주대학교의 여심을 홀리고 싶다. 선우는 총 NN(1N10181\leq N \leq 10^{18})분의 공연을 기획하고 있는데, 어떤 노래를 어느 순서로 몇 번이나 부를지 정하지 못하고 있다.

예를 들어, 다음과 같은 후보곡들이 있다고 하자.

  1. <아주바캉스>, 아주 강 같은 평화 - 33
  2. <졸업할 수 있을까>, 컴공소년 - 22
  3. <벌써 사년>, 브라운 관즈 - 11
  4. <응급실>, 낫 이지 - 55
  5. <이미 아픈 성적>, 요다 - 44

선우가 이 노래들로 1010분의 공연을 구성한다면 [3번, 1번, 3번, 4번]와 같은 식으로 공연을 구성할 수 있다. 여기서 알 수 있듯이, 선우는 중간에 절대 쉬지 않는다! 또한 같은 노래를 여러 번 부를 수도, 어떤 후보곡은 쓰이지 않을 수도 있다. 이렇게 공연을 하는 데에 부르는 노래의 순서를 셋리스트라고 한다.

선우가 부를 수 있는 후보곡의 수와, 각 노래의 재생 시간이 주어질 때, 선우를 도와 정확히 NN분의 공연을 할 수 있는 셋리스트의 경우의 수를 알려주자.

입력

첫 번째 줄에 선우가 공연을 기획한 시간 NN(1N10181 ≤ N ≤ 10^{18})과 선우가 부를 수 있는 후보곡의 수 MM(2M100,0002 \leq M \leq 100\\,000)이 공백으로 구분되어 주어진다.

두 번째 줄부터 (M+1M+1)번째 줄까지 각 줄에는 노래의 재생시간 t_it\_i(1iM1 \leq i \leq M, 1t_i5 1 \leq t\_{i} \leq 5)가 주어진다.

출력

첫 번째 줄에 선우가 공연을 위해 준비해야 하는 가능한 셋리스트의 경우의 수를 1,000,000,0071\\,000\\,000\\,007(=109+7=10^{9}+7)로 나눈 나머지를 출력하시오.

셋리스트를 구성할 수 없다면 정답은 00이다.