1 #include <iostream>
2 #include <cstring>
3 #define pb push_back
4 #define _for(i,a,b) for(int i = (a);i < (b);i ++)
5 #define INF 0x3f3f3f3f
6 #define sz size()
7
8 using namespace std;
9 typedef long long ll;
10
11 const int maxn = 1 << 18;
12
13 int n, dat[2*maxn];
14
15 void init(int n_)
16 {
17 n = (1 << 18)-2;
18 memset(dat,0,sizeof(dat));
19 }
20
21 //更新第k(0-index)个值为a
22 void update(int k)
23 {
24 k += n+1;
25 dat[k] ++;
26 while(k>0)
27 {
28 k = (k-1)/2;
29 dat[k] = dat[k*2+1]+dat[k*2+2];
30 }
31 }
32
33 //求(a,b)val
34 //query(a,b,0,0,n)
35 int query(int a,int b,int k,int l,int r)
36 {
37 //不相交
38 if(r<a || b<l) return 0;
39
40 if(a<=l && r<=b) {return dat[k];}
41 else
42 {
43 int vl = query(a,b,k*2+1,l,(l+r)/2);
44 int vr = query(a,b,k*2+2,(l+r)/2+1,r);
45
46 return vl+vr;
47 }
48 return -1;//error
49 }
50
51 int readint()
52 {
53 int t;
54 scanf("%d",&t);
55 return t;
56 }
57
58 int main()
59 {
60 int N;
61 while(scanf("%d",&N)!=EOF)
62 {
63 init(n);
64 int rnt[15002];
65 memset(rnt,0,sizeof(rnt));
66 _for(i,0,N)
67 {
68 int x = readint();
69 rnt[query(0,x,0,0,n)] ++;
70 update(x);
71 readint();
72 }
73 _for(i,0,N)
74 printf("%d\n",rnt[i]);
75 }
76 return 0;
77 }