#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
int size = 10000000;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int n;
  cin >> n;
  vector<int> v(n);
  for (int i = 0; i < n; i++) {
    cin >> v[i];
  }
  int mx = 0;
  vector<pair<int, int> > store;
  int start = 0;
  int end = 0;
  for (int i = 0; i < n - 1; i++) {
    if (v[i] < v[i + 1]) {
      end++;
    } else {
      store.push_back(make_pair(start, end));
      start = end + 1;
      end = start;
    }
  }
  if (v[n - 1] > v[n - 2]) store.push_back(make_pair(start, end));
  mx = max(mx, store[0].second - store[0].first + 1);
  for (int i = 0; i < store.size(); i++) {
    if (i + 1 < store.size() && store[i + 1].first - 1 == store[i].second &&
        v[store[i].second - 1] < v[store[i + 1].first]) {
      mx = max(mx, store[i + 1].second - store[i].first);
    } else if (i + 1 < store.size() &&
               store[i + 1].first - 1 == store[i].second &&
               v[store[i].second] < v[store[i + 1].first + 1]) {
      mx = max(mx, store[i].second + store[i + 1].second - store[i + 1].first -
                       store[i].first + 1);
    } else {
      mx = max(mx, store[i].second - store[i].first + 1);
    }
  }
  cout << mx << endl;
  return 0;
}
