#include <bits/stdc++.h>
using namespace std;
int maxSubGroups(vector<int>arr){
int n=arr.size();
vector<int>sortedArr = arr;
sort(sortedArr.begin(), sortedArr.end());
map<int,int>m;
for(int i=0;i<sortedArr.size();i++)
m[sortedArr[i]]=i;
int maxGroups = 0, maxIndex=0;
for(int i=0;i<n;i++){
maxIndex = max(maxIndex, m[arr[i]]);
if(maxIndex == i)
maxGroups++;
}
return maxGroups;
}
int main() {
vector<int>arr = {1, 5, 4, 9, 8, 7, 12, 13, 14};
int maxGroups = maxSubGroups(arr);
cout<<maxGroups;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWF4U3ViR3JvdXBzKHZlY3RvcjxpbnQ+YXJyKXsKCWludCBuPWFyci5zaXplKCk7Cgl2ZWN0b3I8aW50PnNvcnRlZEFyciA9IGFycjsKCXNvcnQoc29ydGVkQXJyLmJlZ2luKCksIHNvcnRlZEFyci5lbmQoKSk7CgltYXA8aW50LGludD5tOwoJZm9yKGludCBpPTA7aTxzb3J0ZWRBcnIuc2l6ZSgpO2krKykKCQltW3NvcnRlZEFycltpXV09aTsKCWludCBtYXhHcm91cHMgPSAwLCBtYXhJbmRleD0wOwoJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJbWF4SW5kZXggPSBtYXgobWF4SW5kZXgsIG1bYXJyW2ldXSk7CgkJaWYobWF4SW5kZXggPT0gaSkKCQkJbWF4R3JvdXBzKys7Cgl9CglyZXR1cm4gbWF4R3JvdXBzOwp9CgppbnQgbWFpbigpIHsKCXZlY3RvcjxpbnQ+YXJyID0gezEsIDUsIDQsIDksIDgsIDcsIDEyLCAxMywgMTR9OwoJaW50IG1heEdyb3VwcyA9IG1heFN1Ykdyb3VwcyhhcnIpOwoJY291dDw8bWF4R3JvdXBzOwoJcmV0dXJuIDA7Cn0=