input: from typing import List
  
  def number_of_stable_arrays(zero: int, one: int, limit: int) -> int:
      """
      You are given 3 positive integers zero, one, and limit.
  
      A binary array arr is called stable if:
  
      The number of occurrences of 0 in arr is exactly zero.
      The number of occurrences of 1 in arr is exactly one.
      Each subarray of arr with a size greater than limit must contain both 0 and 1.
      Return the total number of stable binary arrays.
  
      Since the answer may be very large, return it modulo 10^9 + 7.
  
      Examples:
      >>> zero = 1, one = 1, limit = 2
      2
      >>> zero = 1, one = 2, limit = 1
      1
      >>> zero = 3, one = 3, limit = 2
      14
  
      Constraints:
      1 <= zero, one, limit <= 200
      """
  
output: 
      MOD = 10**9 + 7
      
      def count_arrays(z: int, o: int, l: int) -> int:
          if z < 0 or o < 0:
              return 0
          if z == 0 and o == 0:
              return 1
          if l == 0:
              return 0
          return (count_arrays(z - 1, o, l - 1) + count_arrays(z, o - 1, l - 1)) % MOD
      
      return count_arrays(zero, one, limit)
  