from bisect import bisect_left from itertools import accumulate def main(): N = int(input()) a, b, c = map(int, input().split()) S = list(map(len, input().split())) S_accum = list(accumulate(S, initial=0)) patterns = 0 for start_idx in range(N): a_idx = bisect_left(S_accum, S_accum[start_idx] + a) if a_idx == len(S_accum): break if S_accum[a_idx] != S_accum[start_idx] + a: continue b_idx = bisect_left(S_accum, S_accum[start_idx] + a + b) if b_idx == len(S_accum): break if S_accum[b_idx] != S_accum[start_idx] + a + b: continue c_idx = bisect_left(S_accum, S_accum[start_idx] + a + b + c) if c_idx == len(S_accum): break if S_accum[c_idx] != S_accum[start_idx] + a + b + c: continue patterns += 1 print(patterns) if __name__ == "__main__": main()