Let be a sequence of distinct integers. An index is called a separator if the following two conditions hold:
- for all ,
- for all .
In other words, the array consists of three parts: all elements smaller than , then itself, and finally all elements greater than .
For instance, let . The separators are the indices and , corresponding to the values and .
The sequence is initially empty. You are given a sequence of elements to append to , one after another. After appending each , output the current number of separators in the sequence you have.
The input format is selected so that you have to compute the answers online. Instead of the elements you should append to , you are given a sequence .
Process the input as follows:
The empty sequence contains separators.
For each from to , inclusive:
- Calculate the value .
- Append to the sequence .
- Calculate : the number of separators in the current sequence .
- Output a line containing the value .
Input
The first line contains a single integer : the number of queries to process.
Then, lines follow. The -th of these lines contains the integer . The values are chosen in such a way that the values you'll compute will all be distinct.
Output
As described above, output lines with the values through .
Scoring
Subtask ( points): .
Subtask ( points): .
Subtask ( points): .
Subtask ( points): no additional constraints.
Sample Input 1
7
30
9
20
50
79
58
89
Sample Output 1
1
0
0
1
2
1
2
Sample Input 2
10
0
0
0
0
0
0
0
0
0
0
Sample Output 2
1
2
3
4
5
6
7
8
9
10
Note
The first example is described in the problem statement.
The second example is decoded as .
Comments