#include // cin, cout, cerr, clog #include // minmax, sort, swap #include // iota, accumulate, inner_product #include // printf, scanf #include // INT_MIN, LLONG_MIN #include // long, trig, pow #include // string, stoi, to_string #include // vector #include // queue, priority_queue #include // stack #include // key-value pairs sorted by keys #include // set #include // hashed by keys #include // hashed by keys #include // cout< 9*10^18 #define all(v) v.begin(), v.end() #define MOD 1000000007 signed main() { int k,n; std::cin >> k >> n; std::vector x(n); rep(i,n) std::cin >> x[i]; std::unordered_map dp; dp[0] = 1; for(auto& i:dp) { for(auto& j:x) { int next = i.first+j; if(next>k) break; dp[next] = (dp[next] + i.second)%MOD; } } print(dp[k]); return 0; }