#include <bits/stdc++.h>
using namespace std;
int dp1[100005], dp2[100005], a[100005];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
  }
  dp1[n - 1] = dp2[n - 1] = dp1[0] = dp2[0] = 1;
  for (int i = 1; i < n; i++) {
    dp1[i] = 1;
    if (a[i] > a[i - 1]) {
      dp1[i] = dp1[i - 1] + 1;
    } else {
      if (dp1[i - 1] + 1 <= a[i])
        dp1[i] = dp1[i - 1] + 1;
      else
        dp1[i] = a[i];
    }
  }
  for (int i = n - 2; i >= 0; i--) {
    dp2[i] = 1;
    if (a[i] > a[i + 1]) {
      dp2[i] = dp2[i + 1] + 1;
    } else {
      if (dp2[i + 1] + 1 <= a[i])
        dp2[i] = dp2[i + 1] + 1;
      else
        dp2[i] = a[i];
    }
  }
  int ans = 0;
  for (int i = 0; i < n; i++) {
    ans = max(ans, min(dp1[i], dp2[i]));
  }
  printf("%d\n", ans);
  return 0;
}
