#### Registered Users Only

Please login to utilize this feature.

Do note that this website only supports submissions in C++.

### Title

### Problem Statement

You are given a sequence of positive integers of length `N`, `a = (a _{1}, a_{2}, ..., a_{N})`.
Your objective is to remove some of the elements in

`a`so that

`a`will be a

**good sequence**.

Here, an sequence `b` is a **good sequence** when the following condition holds true:

- For each element
`x`in`b`, the value`x`occurs exactly`x`times in`b`.

For example, `(3, 3, 3)`, `(4, 2, 4, 1, 4, 2, 4)` and `()` (an empty sequence) are good sequences, while `(3, 3, 3, 3)` and `(2, 4, 1, 4, 2)` are not.

Find the minimum number of elements that needs to be removed so that `a` will be a good sequence.

### Constraints

`1 ≤ N ≤ 10`^{5}`a`is an integer._{i}`1 ≤ a`_{i}≤ 10^{9}

### Input

Input is given from Standard Input in the following format:

Na_{1}a_{2}...a_{N}

### Output

Print the minimum number of elements that needs to be removed so that `a` will be a good sequence.

### Sample Input 1

4 3 3 3 3

### Sample Output 1

1

We can, for example, remove one occurrence of `3`. Then, `(3, 3, 3)` is a good sequence.

### Sample Input 2

5 2 4 1 4 2

### Sample Output 2

2

We can, for example, remove two occurrences of `4`. Then, `(2, 1, 2)` is a good sequence.

### Sample Input 3

6 1 2 2 3 3 3

### Sample Output 3

0

### Sample Input 4

1 1000000000

### Sample Output 4

1

Remove one occurrence of `10 ^{9}`. Then,

`()`is a good sequence.

### Sample Input 5

8 2 7 1 8 2 8 1 8

### Sample Output 5

5

### Tags

### Subtasks and Limits

Subtask | Score | #TC | Time | Memory | Scoring |
---|---|---|---|---|---|

1 | 100 | 18 | 1s | 256MB | Minimum |

2 | 0 | 5 | 1s | 256MB | Minimum |

### Judge Compile Command

g++-7 ans.cpp -o goodseq -Wall -static -O2 -lm -m64 -s -w -std=gnu++17 -fmax-errors=512