#include <bits/stdc++.h> 

using namespace std;

int main(){
    int n;
    cin >> n;
    vector<int> arr(n);
    
    for(int i = 0; i < n; i++){
        cin >> arr[i];
    }
    
    vector<int> l(n),r(n); // l[i] 第i个山丘的左边比他高的山丘的数量!r[i] 右边比他高的山丘的数量!
    
    stack<int> stk;
    
    
    for(int i = 0; i < n; i++){
        while(!stk.empty() && arr[stk.top()] < arr[i]) stk.pop();
        l[i] = stk.size();
        stk.push(i);
    }
    
    stack<int>().swap(stk); // 没有clear方法就这样吧!
    
    for(int i = n-1; i >= 0; i--){
        while(!stk.empty() && arr[stk.top()] < arr[i]) stk.pop();
        r[i] = stk.size();
        stk.push(i);
    }
    
    for(int i = 0; i < n; i++){
        cout << (n - 1 - l[i]-r[i])<< " ";
    }
    return 0;
    
}