#include <iostream>
#include <vector>
#include <stack>
using namespace std;
int main(){
int n;
cin >> n;
vector<int> a(n);
for(int i = 0; i < n; i++) cin >> a[i];
stack<int> s;
vector<int> ans(n);
for(int i = n - 1; i >= 0; i--){
while(!s.empty() && s.top() < a[i]){
s.pop();
}
if(s.empty()) ans[i] = -1;
else ans[i] = s.top();
s.push(a[i]);
}
for(auto i : ans) cout << i << " ";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RhY2s+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKXsKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICAKICAgIHZlY3RvcjxpbnQ+IGEobik7CiAgICAKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspIGNpbiA+PiBhW2ldOwogICAgCiAgICBzdGFjazxpbnQ+IHM7CiAgICB2ZWN0b3I8aW50PiBhbnMobik7CiAgICBmb3IoaW50IGkgPSBuIC0gMTsgaSA+PSAwOyBpLS0pewogICAgICAgIHdoaWxlKCFzLmVtcHR5KCkgJiYgcy50b3AoKSA8IGFbaV0pewogICAgICAgICAgICBzLnBvcCgpOwogICAgICAgIH0KICAgICAgICBpZihzLmVtcHR5KCkpIGFuc1tpXSA9IC0xOwogICAgICAgIGVsc2UgYW5zW2ldID0gcy50b3AoKTsKICAgICAgICBzLnB1c2goYVtpXSk7CiAgICB9CiAgICAKICAgIGZvcihhdXRvIGkgOiBhbnMpIGNvdXQgPDwgaSA8PCAiICI7Cn0=