MOD = 10**9 + 7 K = int(input()) N = int(input()) x = list(map(int, input().split())) x.sort() dp = [0] * (K + 1) dp[0] = 1 # Base case: one way to be at step 0 for k in range(1, K + 1): # Find the rightmost index where x[i] <= k using binary search left, right = 0, N while left < right: mid = (left + right) // 2 if x[mid] > k: right = mid else: left = mid + 1 # Now, left is the first index where x[i] > k, so valid x are 0..left-1 for i in range(left): xi = x[i] if xi > k: continue dp[k] += dp[k - xi] if dp[k] >= MOD: dp[k] -= MOD print(dp[K] % MOD)