Number of ZigZag Arrays I

Solution
class Solution:
    def zigZagArrays(self, n: int, l: int, r: int) -> int:
        MOD = 10**9 + 7
        m = r - l + 1
        
        dp0 = [1] * m
        dp1 = [1] * m
        for _ in range(n - 1):
            sum0 = list(accumulate(dp0, initial=0))
            sum1 = list(accumulate(dp1, initial=0))
            
            dp0 = [x % MOD for x in sum1[:-1]]
            
            s0_m = sum0[-1]
            dp1 = [(s0_m - x) % MOD for x in sum0[1:]]
            
        return (sum(dp0) + sum(dp1)) % MOD