#include <bits/stdc++.h>
using namespace std;
int mas[100000];
int main() {
  int N;
  scanf("%d", &N);
  stack<pair<int, int> > st;
  for (int i = 0; i < N; i++) scanf("%d", &mas[i]);
  reverse(mas, mas + N);
  for (int i = 0; i < N; i++) {
    pair<int, int> p = make_pair(mas[i], 0);
    while (!st.empty()) {
      pair<int, int> q = st.top();
      if (q.first < p.first) {
        st.pop();
        p.second = max(p.second + 1, q.second);
      } else
        break;
    }
    st.push(p);
  }
  int res = 0;
  while (!st.empty()) {
    res = max(res, st.top().second);
    st.pop();
  }
  printf("%d\n", res);
  return 0;
}
