#include #include #include int BIG_N = 1000000007; int main(){ int K = 0, N = 0; std::cin >> K; std::cin >> N; std::vector X; for (int i = 0; i < N; i++){ int x = 0; std::cin >> x; X.push_back(x); } std::vector kaidan(K + 1); kaidan[0] = 1; for (int k_idx = 0; k_idx < kaidan.size() - 1; k_idx++) { if (kaidan[k_idx] == 0) continue; int cur = kaidan[k_idx]; for (auto x: X) { if (k_idx + x < kaidan.size()) { kaidan[k_idx + x] += cur; kaidan[k_idx + x] %= BIG_N; } } } // for (auto k : kaidan) { // std::cout << k << std::endl; // } std::cout << kaidan[kaidan.size() - 1] << std::endl; }