#include <bits/stdc++.h>
const int maxs = 100 * 100 * 10 + 10;
int dp1[maxs], dp2[maxs];
int n, a[maxs];
using namespace std;
int findd(int k) {
  int d1 = 0, d2 = 0;
  if (k != 1 && a[k - 1] < a[k]) d1 = dp1[k - 1];
  if (k != n && a[k + 1] > a[k]) d2 = dp2[k + 1];
  return d1 + d2;
}
int f(int k) {
  int d1 = 0, d2 = 0;
  int x = a[k];
  if (k != 1) {
    a[k] = a[k - 1] + 1;
    d1 = findd(k);
  }
  if (k != n) {
    a[k] = a[k + 1] - 1;
    d2 = findd(k);
  }
  a[k] = x;
  return max(d1, d2) + 1;
}
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) cin >> a[i];
  dp1[1] = 1;
  for (int i = 2; i <= n; i++) {
    if (a[i] > a[i - 1])
      dp1[i] = dp1[i - 1] + 1;
    else
      dp1[i] = 1;
  }
  dp2[n] = 1;
  for (int i = n - 1; i >= 1; i--) {
    if (a[i] < a[i + 1])
      dp2[i] = dp2[i + 1] + 1;
    else
      dp2[i] = 1;
  }
  int ans = 1;
  for (int i = 1; i <= n; i++) ans = max(ans, f(i));
  cout << ans << endl;
  return 0;
}
