#include <iostream>
#include <stack>
#include <vector>
using namespace std;
int main() {
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++)
{
cin>>a[i];
}
stack<int> St;
vector<int> ans;
for(int i=0;i<n;i++)
{
while(!St.empty() && a[St.top()] >= a[i])
{
St.pop();
}
if(St.empty())
{
ans.push_back(0);
}
else
{
ans.push_back(St.top()+1);
}
St.push(i);
}
for(int i=0;i<ans.size();i++)
{
cout<<ans[i]<<" ";
}
cout<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDx2ZWN0b3I+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCQoJaW50IG47CgljaW4+Pm47CgkKCWludCBhW25dOwoJZm9yKGludCBpPTA7aTxuO2krKykKCXsKCQljaW4+PmFbaV07Cgl9CgkKCXN0YWNrPGludD4gU3Q7Cgl2ZWN0b3I8aW50PiBhbnM7Cglmb3IoaW50IGk9MDtpPG47aSsrKQoJewoJCXdoaWxlKCFTdC5lbXB0eSgpICYmIGFbU3QudG9wKCldID49IGFbaV0pCgkJewoJCQlTdC5wb3AoKTsKCQl9CgkJCgkJaWYoU3QuZW1wdHkoKSkKCQl7CgkJCWFucy5wdXNoX2JhY2soMCk7CgkJfQoJCWVsc2UKCQl7CgkJCWFucy5wdXNoX2JhY2soU3QudG9wKCkrMSk7CgkJfQoJCQoJCVN0LnB1c2goaSk7Cgl9CgkKCWZvcihpbnQgaT0wO2k8YW5zLnNpemUoKTtpKyspCgl7CgkJY291dDw8YW5zW2ldPDwiICI7Cgl9Cgljb3V0PDxlbmRsOwoJCglyZXR1cm4gMDsKfQ==