#P1165B. Polycarp Training

    ID: 4509 Type: RemoteJudge 2000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 3 Uploaded By: Tags>data structuresgreedysortings*1000

Polycarp Training

Description

Polycarp wants to train before another programming competition. During the first day of his training he should solve exactly 11 problem, during the second day — exactly 22 problems, during the third day — exactly 33 problems, and so on. During the kk-th day he should solve kk problems.

Polycarp has a list of nn contests, the ii-th contest consists of aia_i problems. During each day Polycarp has to choose exactly one of the contests he didn't solve yet and solve it. He solves exactly kk problems from this contest. Other problems are discarded from it. If there are no contests consisting of at least kk problems that Polycarp didn't solve yet during the kk-th day, then Polycarp stops his training.

How many days Polycarp can train if he chooses the contests optimally?

The first line of the input contains one integer nn (1n21051 \le n \le 2 \cdot 10^5) — the number of contests.

The second line of the input contains nn integers a1,a2,,ana_1, a_2, \dots, a_n (1ai21051 \le a_i \le 2 \cdot 10^5) — the number of problems in the ii-th contest.

Print one integer — the maximum number of days Polycarp can train if he chooses the contests optimally.

Input

The first line of the input contains one integer nn (1n21051 \le n \le 2 \cdot 10^5) — the number of contests.

The second line of the input contains nn integers a1,a2,,ana_1, a_2, \dots, a_n (1ai21051 \le a_i \le 2 \cdot 10^5) — the number of problems in the ii-th contest.

Output

Print one integer — the maximum number of days Polycarp can train if he chooses the contests optimally.

Sample Input 1

4
3 1 4 1

Sample Output 1

3

Sample Input 2

3
1 1 1

Sample Output 2

1

Sample Input 3

5
1 1 1 2 2

Sample Output 3

2