import bisect n, w = map(int, input().split()) a = [int(input()) for _ in range(n)] prefix_sum = [0] * (n + 1) for i in range(n): prefix_sum[i + 1] = prefix_sum[i] + a[i] left = 0 last_occurrence = {} max_length = 0 for right in range(n): current = a[right] if current in last_occurrence and last_occurrence[current] >= left: left = max(left, last_occurrence[current] + 1) last_occurrence[current] = right target = prefix_sum[right + 1] - w k = bisect.bisect_left(prefix_sum, target, left, right + 2) if k <= right: current_length = right - k + 1 if current_length > max_length: max_length = current_length print(max_length)