#pragma GCC optimize("O3") #pragma GCC target("avx") #include <vector> #include <cstdio> using namespace std; const int M=1000000007; int main(){ int K,N; scanf("%d%d",&K,&N); vector<int> k(K+1);k[0]=1; vector<int> x(N); for(int i=0;i<N;i++)scanf("%d",&x[i]); for(int i=1;i<=K;i++)for(int j=0;j<N;j++){ if(i>=x[j]){ k[i]+=k[i-x[j]]; if(k[i]>=M)k[i]-=M; } } printf("%d\n",k[K]); }