Baltic Olympiad in Informatics: 2010 Day 2, Problem 1
There is a large number of empty bins in a factory depot. The bins are arranged in a single row. The manager of the depot wants to put some bins into other bins to make some free space in the left end of the depot. Bins can be moved by a robot, which can take a bin, carry it to the right, and put it into a strictly larger bin. This three-operation sequence is the only allowed way to move bins.
Because of safety regulations, any bin can contain at most one other bin, which must be empty. The manager also wants to keep the double bins in the left end of the resulting row, to make it easier to keep track of them.
You are to write a program that computes the largest possible such that the leftmost bins can become double bins using the robot's operations.
Constraints
Input Specification
The first line of input contains two space-separated integers: , the size of the largest bin, and , the number of bins. The second line contains space-separated integers : the sizes of the bins, listed from left to right.
Output Specification
Output a single integer, the largest number such that the robot can turn the leftmost bins into double bins. These double bins must be the leftmost bins (or the prefix) of the resulting row.
Sample Input
5 10
2 2 1 4 3 2 5 4 2 3
Sample Output
4
Explanation
The bins can be placed in the bins . The double bins are the prefix of the row after the operations.
Comments