int main() {
    int n;
    cin >> n;
    vector<pair<int, int>> vi;
    int i = 0, num;
    while (i < n) {
        cin >> num;
        vi.push_back({ num, i });
        i++;
    }
    sort(vi.begin(), vi.end(), [](const pair<int, int> &a, const pair<int, int> &b) {return a.first < b.first;});
    int cnt = 0;
    for (i = 0; i < n; i++) {
        int tmp = vi.at(i).second;
        if (tmp == i) { cnt++; continue;}
        int j = i;
        for (; j <= tmp; j++) {
            tmp = max(tmp, vi.at(j).second);
        }
        cnt++;
        i = j - 1;    
    }
    cout << cnt << endl;

    return 0;
}