#include<bits/stdc++.h>
using namespace std;
void NGE(int arr[] , int n){
int res[n];
//starting from reverse to get the right order for each element
res[n-1] = -1;
stack<int> s;
s.push(arr[n-1]);
for(int i =n-2;i>=0;i--){
while(!s.empty() && arr[i]>s.top())
s.pop();
if(s.empty() )
res[i] = -1;
else
res[i] = s.top();
s.push(arr[i]);
}
for(int i =0;i<n;i++)
cout<<res[i]<<endl;
}
int main(){
int n;
cin>>n;
int arr[n];
for(int i =0;i<n;i++){
cin>>arr[i];
}
NGE(arr , n);
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIE5HRShpbnQgYXJyW10gLCBpbnQgbil7CgoKICAgICAgICBpbnQgcmVzW25dOwogICAgICAgIC8vc3RhcnRpbmcgZnJvbSByZXZlcnNlIHRvIGdldCB0aGUgcmlnaHQgb3JkZXIgZm9yIGVhY2ggZWxlbWVudAogICAgICAgIHJlc1tuLTFdID0gLTE7CiAgICAgICAgc3RhY2s8aW50PiBzOwogICAgICAgIHMucHVzaChhcnJbbi0xXSk7CiAgICAgICAgZm9yKGludCBpID1uLTI7aT49MDtpLS0pewogICAgICAgICAgICAKICAgICAgICAgICAgd2hpbGUoIXMuZW1wdHkoKSAmJiBhcnJbaV0+cy50b3AoKSkKICAgICAgICAgICAgICAgIHMucG9wKCk7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZihzLmVtcHR5KCkgKQogICAgICAgICAgICAgICAgcmVzW2ldID0gLTE7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHJlc1tpXSA9IHMudG9wKCk7CiAgICAgICAgICAgIAogICAgICAgICAgICBzLnB1c2goYXJyW2ldKTsgICAgCiAgICAgICAgfQogICAgICAgIAogICAgZm9yKGludCBpID0wO2k8bjtpKyspCiAgICAgICAgY291dDw8cmVzW2ldPDxlbmRsOwogICAgICAgIAogCn0KaW50IG1haW4oKXsKICAgIAogICAgCiAgICAKICAgIGludCBuOwogICAgY2luPj5uOwogICAgaW50IGFycltuXTsKICAgIGZvcihpbnQgaSA9MDtpPG47aSsrKXsKICAgICAgICBjaW4+PmFycltpXTsKICAgIH0KICAgIAogICAgTkdFKGFyciAsIG4pOwogICAgcmV0dXJuIDA7Cn0=