#include <bits/stdc++.h>
struct Seg {
  int head;
  int rear;
  int len;
} seg[100005];
int a[100005];
int main() {
  int n, last;
  while (EOF != scanf("%d", &n)) {
    a[0] = 0x7f7f7f7f;
    int cnt = -1;
    for (int i = 1; i <= n; ++i) {
      scanf("%d", &a[i]);
      if (a[i] <= a[i - 1]) {
        ++cnt;
        seg[cnt].head = i;
        seg[cnt].len = 0;
      }
      ++seg[cnt].len;
      seg[cnt].rear = i;
    }
    int mx = seg[0].len;
    if (cnt > 0) {
      mx += 1;
    }
    int tmp;
    for (int i = 1; i <= cnt; ++i) {
      if (seg[i - 1].len == 1) {
        tmp = 1 + seg[i].len;
      } else if (seg[i].len == 1) {
        tmp = 1 + seg[i - 1].len;
      } else if (a[seg[i].head] > a[seg[i - 1].rear - 1] + 1 ||
                 a[seg[i].head + 1] > a[seg[i - 1].rear] + 1) {
        tmp = seg[i].len + seg[i - 1].len;
      } else {
        tmp = seg[i].len + 1;
      }
      if (tmp > mx) {
        mx = tmp;
      }
    }
    printf("%d\n", mx);
  }
  return 0;
}
