#include <bits/stdc++.h>
int a[1001];
int l[4], r[4];
int n;
void reverse(int l, int r) {
  int temp;
  while (l < r) {
    temp = a[l];
    a[l] = a[r];
    a[r] = temp;
    l++;
    r--;
  }
}
bool check() {
  int i;
  for (i = 1; i <= n; i++)
    if (a[i] != i) return false;
  return true;
}
void print(int x) {
  int i;
  printf("%d\n", x);
  for (i = x; i >= 1; i--) printf("%d %d\n", l[i], r[i]);
  exit(0);
}
void dfs(int i) {
  int j, k;
  if (check()) print(i - 1);
  if (i <= 3) {
    for (j = 1; j <= n; j++)
      if (a[j] != j) {
        for (k = j;; k++)
          if (a[k] == j) {
            l[i] = j;
            r[i] = k;
            reverse(j, k);
            dfs(i + 1);
            reverse(j, k);
            break;
          }
        break;
      }
    for (j = n; j >= 1; j--)
      if (a[j] != j) {
        for (k = j;; k--)
          if (a[k] == j) {
            l[i] = k;
            r[i] = j;
            reverse(k, j);
            dfs(i + 1);
            reverse(k, j);
            break;
          }
        break;
      }
  }
}
int main() {
  int i;
  scanf("%d", &n);
  for (i = 1; i <= n; i++) scanf("%d", &a[i]);
  dfs(1);
  return 0;
}
