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;
}