1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
def solve(n, nums):
    full_rot = nums + nums

    bigger = [2 * n] * (2 * n)

    stack = []
    for i in range(n * 2):
        while stack and full_rot[stack[-1]] < full_rot[i]:
            bigger[stack.pop()] = i

        stack.append(i)

    counter = [0] * (2 * n + 1)
    for i in range(2 * n - 1, -1, -1):
        next = bigger[i]

        if next < i + n:
            counter[i] = 1 + counter[next]

        else:
            counter[i] = 1

    return max(counter[:n])

n = int(input())
nums = list(map(int, input().split()))
print(solve(n, nums))