/*
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct sch
{
char name[100];
int day, sc;
};
int main()
{
struct sch c[100],x;
int y,m,d,n, i, j;
scanf("%d", &n);
for (i=0;i<n;i++)
{
scanf("%s %d %d %d", c[i].name, &y, &m, &d);
c[i].day=y*10000+m*100+d;
}
for (i=0;i<n;i++)
{
for (j=0;j<n-1;j++)
{
if (c[j].day>c[j+1].day)
{
x=c[j];
c[j]=c[j+1];
c[j+1]=x;
}
else if (c[j].day==c[j+1].day)
{
if (strcmp(c[j].name,c[j+1].name)==1)
{
x=c[j];
c[j]=c[j+1];
c[j+1]=x;
}
}
}
}
for (i=0;i<n;i++)
{
printf("%s\n", c[i].name);
}
return 0;
}
*/
#include <stdio.h>
#include <string.h>
struct data
{
int d, sc;
};
int main()
{
struct data d[50001]= {0};
int n, x, y, i, j;
j=1;
scanf("%d", &n);
for (i=0; i<n; i++)
{
scanf("%d", &d[i].d);
}
for (i=0; i<n+1; i++)
{
if (d[i].d>d[j].d)
{
d[i].sc++;
}
}
for (i=0; i<n; i++)
{
printf("%d ", d[i].sc);
}
}/*
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct sch
{
char name[100];
int day, sc;
};
int main()
{
struct sch c[100],x;
int y,m,d,n, i, j;
scanf("%d", &n);
for (i=0;i<n;i++)
{
scanf("%s %d %d %d", c[i].name, &y, &m, &d);
c[i].day=y*10000+m*100+d;
}
for (i=0;i<n;i++)
{
for (j=0;j<n-1;j++)
{
if (c[j].day>c[j+1].day)
{
x=c[j];
c[j]=c[j+1];
c[j+1]=x;
}
else if (c[j].day==c[j+1].day)
{
if (strcmp(c[j].name,c[j+1].name)==1)
{
x=c[j];
c[j]=c[j+1];
c[j+1]=x;
}
}
}
}
for (i=0;i<n;i++)
{
printf("%s\n", c[i].name);
}
return 0;
}
*/
#include <stdio.h>
#include <string.h>
struct data
{
int d, sc;
};
int main()
{
struct data d[50001]= {0};
int n, x, y, i, j;
j=1;
scanf("%d", &n);
for (i=0; i<n; i++)
{
scanf("%d", &d[i].d);
}
for (i=0; i<n+1; i++)
{
if (d[i].d>d[j].d)
{
d[i].sc++;
}
}
for (i=0; i<n; i++)
{
printf("%d ", d[i].sc);
}
}