MOD = 10**9 + 7 K = int(input()) N = int(input()) x = list(map(int, input().split())) # Since x is already sorted as per the problem statement dp = [0] * (K + 1) dp[0] = 1 for k in range(1, K + 1): # Find the rightmost index where x[i] <= k using bisect_right left, right = 0, N while left < right: mid = (left + right) // 2 if x[mid] <= k: left = mid + 1 else: right = mid idx = left # Iterate through all x_i <= k for i in range(idx): xi = x[i] if k - xi >= 0: dp[k] = (dp[k] + dp[k - xi]) % MOD print(dp[K] % MOD)