#include <bits/stdc++.h>
#pragma GCC optimize("2,Ofast,inline")
const long long N = 2e5 + 10;
const long long mod = 1e9 + 7;
const long long inf = 0x3f3f3f3f;
const double eps = 1e-9;
using namespace std;
template <typename tp>
inline void read(tp &x) {
  x = 0;
  char c = getchar();
  bool f = 0;
  for (; c < '0' || c > '9'; f |= (c == '-'), c = getchar())
    ;
  for (; c >= '0' && c <= '9'; x = (x << 3) + (x << 1) + c - '0', c = getchar())
    ;
  if (f) x = -x;
}
int n, x[N << 1], root, dfns, ans, anss;
struct Node {
  int ch[2], val, dfn, max_dfn;
} node[N << 1];
stack<int> st;
int tree[N << 3], tag[N << 3];
void push_down(int now) {
  tree[now << 1] += tag[now];
  tree[now << 1 | 1] += tag[now];
  tag[now << 1] += tag[now];
  tag[now << 1 | 1] += tag[now];
  tag[now] = 0;
}
void change(int now, int l, int r, int ql, int qr, int k) {
  if (ql <= l && r <= qr) {
    tree[now] += k;
    tag[now] += k;
    return;
  }
  if (qr < l || r < ql) return;
  int mid = (l + r) >> 1;
  push_down(now);
  change(now << 1, l, mid, ql, qr, k);
  change(now << 1 | 1, mid + 1, r, ql, qr, k);
  tree[now] = max(tree[now << 1], tree[now << 1 | 1]);
}
void dfs(int now, int dep) {
  if (!now) return;
  node[now].dfn = ++dfns;
  dep += node[now].val;
  change(1, 1, n * 2, node[now].dfn, node[now].dfn, dep);
  dfs(node[now].ch[0], dep);
  dfs(node[now].ch[1], dep);
  node[now].max_dfn = dfns;
}
signed main() {
  read(n);
  for (int i = 1; i <= n; i++) read(x[i]), x[i + n] = x[i];
  for (int i = 1; i <= n * 2; i++) {
    if (x[i] == 1 && !root) root = i;
    int flag = 0;
    while (!st.empty() && x[st.top()] > x[i]) flag = st.top(), st.pop();
    node[i].ch[0] = flag;
    if (!st.empty()) node[st.top()].ch[1] = i;
    st.push(i);
  }
  for (int i = 1; i <= n; i++) node[i].val = 1;
  dfs(root, 0);
  ans = tree[1];
  for (int i = 1; i < n; i++) {
    change(1, 1, n * 2, node[i].dfn, node[i].max_dfn, -1);
    change(1, 1, n * 2, node[i + n].dfn, node[i + n].max_dfn, 1);
    if (ans > tree[1]) ans = tree[1], anss = i;
  }
  printf("%d %d\n", ans, anss);
  return 0;
}
