제시카는 생일 선물로 쌓기 블록 한 세트를 받았습니다. 블록은 모두 같은 크기의 정육면체이고, 각 블록에는 양의 정수가 하나씩 적혀 있습니다. 선물이 무척 마음에 든 제시카는 곧바로 모든 블록을 하나의 높은 탑으로 쌓았습니다.
엄마는 놀이 규칙을 알려 주었습니다. 가능한 한 많은 블록이 제자리에 오도록 탑을 다듬는 것입니다. 어떤 블록에 적힌 수가 i일 때, 그 블록이 높이 i에 놓여 있으면 제자리에 있는 것입니다. 맨 아래 블록의 높이는 1, 그 위 블록의 높이는 2, 이런 식으로 높이를 셉니다.
제시카는 블록 몇 개를 조심스럽게 빼낼 수 있습니다. 블록을 하나 빼내면 그 위에 있던 블록들이 한 칸씩 내려오고, 높이는 맨 아래부터 다시 매겨집니다. 제시카는 제자리에 남는 블록의 수가 최대가 되도록 블록을 빼내려고 합니다.
처음에 쌓은 탑이 주어질 때, 제자리에 오게 만들 수 있는 블록 수의 최댓값을 구하세요.
첫째 줄에 탑의 처음 높이를 나타내는 정수 n (1≤n≤100000)이 주어집니다. 둘째 줄에는 n개의 양의 정수 a1,a2,…,an (1≤ai≤1000000)이 공백 하나로 구분되어 주어집니다. ai는 처음 탑에서 높이 i에 있는 블록에 적힌 수이며, 맨 아래 블록부터 맨 위 블록 순서로 주어집니다.
제자리에 오게 만들 수 있는 블록 수의 최댓값을 정수 하나로 출력하세요.

