#include <bits/stdc++.h>
#define LL long long int
#define mod 1000000007
using namespace std;
int main()
{
int n;
cin >> n;
int value[n+2],ans[n+2];
for(int i=1;i<=n;i++)
cin >> value[i];
value[n+1]=10000000;
for(int i=n;i>0;i--)
{
int x = i+1;
while(x<=n)
{
if( value[x] > value[i] )break;
x = ans[x];
}
ans[i]=x; // stores the least index which has higher value & lies to right
}
value[n+1]=-1;
for(int i=1;i<=n;i++){
ans[i]=value[i];
cout << ans[i] << " ";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgTEwgbG9uZyBsb25nIGludAojZGVmaW5lIG1vZCAxMDAwMDAwMDA3Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKQp7CiAgICBpbnQgbjsKICAgIGNpbiA+PiBuOwogICAgaW50IHZhbHVlW24rMl0sYW5zW24rMl07CgoKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKQogICAgICAgIGNpbiA+PiB2YWx1ZVtpXTsKCiAgIHZhbHVlW24rMV09MTAwMDAwMDA7CiAgICBmb3IoaW50IGk9bjtpPjA7aS0tKQogICAgewogICAgICAgIGludCB4ID0gaSsxOwogICAgICAgIHdoaWxlKHg8PW4pCiAgICAgICAgewogICAgICAgICAgICBpZiggdmFsdWVbeF0gPiB2YWx1ZVtpXSApYnJlYWs7CiAgICAgICAgICAgIHggPSBhbnNbeF07CiAgICAgICAgfQogICAgICAgIGFuc1tpXT14OyAvLyBzdG9yZXMgdGhlIGxlYXN0IGluZGV4IHdoaWNoIGhhcyBoaWdoZXIgdmFsdWUgJiBsaWVzIHRvIHJpZ2h0CiAgICB9CgogICAgdmFsdWVbbisxXT0tMTsKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKICAgICAgICBhbnNbaV09dmFsdWVbaV07CiAgICAgICAgY291dCA8PCBhbnNbaV0gPDwgIiAiOwogICAgfQoKICAgICAgICByZXR1cm4gMDsKfQo=