선우는 아주대학교의 3년 만의 대동제를 맞아 공연으로 노래를 열창해 아주대학교의 여심을 홀리고 싶다. 선우는 총 N(1≤N≤1018)분의 공연을 기획하고 있는데, 어떤 노래를 어느 순서로 몇 번이나 부를지 정하지 못하고 있다.
예를 들어, 다음과 같은 후보곡들이 있다고 하자.
선우가 이 노래들로 10분의 공연을 구성한다면 [3번, 1번, 3번, 4번]와 같은 식으로 공연을 구성할 수 있다. 여기서 알 수 있듯이, 선우는 중간에 절대 쉬지 않는다! 또한 같은 노래를 여러 번 부를 수도, 어떤 후보곡은 쓰이지 않을 수도 있다. 이렇게 공연을 하는 데에 부르는 노래의 순서를 셋리스트라고 한다.
선우가 부를 수 있는 후보곡의 수와, 각 노래의 재생 시간이 주어질 때, 선우를 도와 정확히 N분의 공연을 할 수 있는 셋리스트의 경우의 수를 알려주자.
첫 번째 줄에 선우가 공연을 기획한 시간 N(1≤N≤1018)과 선우가 부를 수 있는 후보곡의 수 M(2≤M≤100,000)이 공백으로 구분되어 주어진다.
두 번째 줄부터 (M+1)번째 줄까지 각 줄에는 노래의 재생시간 t_i(1≤i≤M, 1≤t_i≤5)가 주어진다.
첫 번째 줄에 선우가 공연을 위해 준비해야 하는 가능한 셋리스트의 경우의 수를 1,000,000,007(=109+7)로 나눈 나머지를 출력하시오.
셋리스트를 구성할 수 없다면 정답은 0이다.