#include #include #include using namespace std; int n; struct BIT{ vector bit; void resize(int N){ bit.assign(N, 0); } void add(int i, long double j){ i++; while (i < bit.size()){ bit[i] += j; i += i&-i; } } long double sum(int i){ long double r = 0; i++; while (i){ r += bit[i]; i -= i&-i; } return r; } }; vector v; vector vv; BIT b; int main(){ cin >> n; for (int i = 0; i < n; i++){ int a; scanf("%d", &a); v.push_back(a); } b.resize(v.size()); vv = v; sort(vv.begin(), vv.end()); vv.erase(unique(vv.begin(), vv.end()), vv.end()); int D = 0; for (int i = 0; i < v.size(); i++){ v[i] = lower_bound(vv.begin(), vv.end(), v[i]) - vv.begin(); if (v[0] < v[i]){ D++; } printf("%d\n", D + 1); } return 0; }