import bisect MOD = 10**9 + 7 def main(): import sys input = sys.stdin.read().split() ptr = 0 K = int(input[ptr]) ptr +=1 N = int(input[ptr]) ptr +=1 x = list(map(int, input[ptr:ptr+N])) ptr +=N x.sort() dp = [0]*(K+1) dp[0] = 1 for i in range(1, K+1): # 找到最大的x_j <=i idx = bisect.bisect_right(x, i) - 1 # 遍历所有x_j <=i for j in range(idx+1): xj = x[j] if xj > i: break dp[i] += dp[i - xj] dp[i] %= MOD print(dp[K] % MOD) if __name__ == "__main__": main()