#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
const int N = 100010;
int cnt[N];
int temp[N];
int n, m;
int main() {
  while (cin >> n) {
    stack<int> s;
    for (int i = 0; i < n; i++) {
      int a;
      cin >> a;
      if (s.empty()) {
        s.push(a);
        cnt[a] = 0;
      } else {
        int mx = 0;
        while (!s.empty() && s.top() < a) {
          mx = max(mx, cnt[s.top()]);
          s.pop();
        }
        if (s.empty()) {
          s.push(a);
          cnt[a] = 0;
        } else {
          s.push(a);
          cnt[a] = mx + 1;
        }
      }
    }
    int ret = 0;
    for (int i = 1; i <= n; i++) ret = max(ret, cnt[i]);
    cout << ret << endl;
  }
  return 0;
}
