프로그래밍 대회 컵
시간 제한1초메모리 제한512 MB
모든 참가자의 앞선 대회 점수가 주어질 때, 마지막 대회에 참가하지 않으면 다른 참가자들이 최선을 다했을 때 최악의 순위가 몇 등인지 구합니다.
문제
당신은 프로그래밍 대회 컵에 참가하고 있다. 컵은 여러 번의 프로그래밍 대회로 이루어지며, 시즌 마지막에 컵 상위 15명이 결승전을 치른다. 결승 전에 남은 대회는 하나뿐이다. 지금까지의 성적으로 이미 결승 진출이 확정되었는지 알고 싶다. 확정되었다면 마지막 대회를 건너뛰어도 된다.
컵 순위는 다음과 같이 정해진다. 각 대회에서 참가자는 0점 이상 101점 이하의 점수를 얻는다. 종합 점수는 참가자가 얻은 점수 중 가장 높은 네 개의 합이다. 예를 들어 6번의 대회에서 45, 15, 32, 0, 30, 20점을 얻었다면 종합 점수는 45 + 32 + 30 + 20 = 127이다. 참가자 X의 순위는 X보다 종합 점수가 더 큰 참가자 수에 1을 더한 값이다.
대회에서 받는 점수는 얻은 순위에 따라 아래 표로 정해진다. 30위보다 낮은 순위는 0점이다.
같은 순위가 여러 명이면 그 순위들에 해당하는 점수의 평균을 각자 받는다. 이 평균은 소수점 이하를 올림하여 정수로 만든다. 예를 들어 3명이 2위를 공동으로 차지하면 세 명 모두 점을 받고, 다음 참가자는 5위가 되어 45점을 받는다(5위도 공동이면 그보다 적은 점수). 30위에서도 같은 규칙이 적용된다. 4711명이 30위를 공동으로 차지하면 모두 1점을 받는다.
참가자는 각 대회에 현장 또는 온라인으로 참가할 수 있다. 현장에서 참가하면 원래 점수와 관계없이 1점을 추가로 받는다. 대회에 참가하지 않으면 0점을 받는다.
입력
첫 줄에 두 정수 과 이 주어진다(, ). 은 결승전을 제외한 컵의 대회 수이고, 은 처음 번의 대회 중 한 번 이상 참가한 사람 수이다.
이어서 줄에 참가자 한 명씩 개의 정수 이 주어진다. 는 그 참가자가 번째 대회에서 받은 점수이다. 맨 처음 나오는 참가자가 당신이다.
입력된 점수는 실제 대회 점수와 다를 수 있다.
출력
당신이 마지막 대회에 참가하지 않는다고 가정할 때, 마지막 결과로 나올 수 있는 가장 나쁜 순위 을 정수 하나로 출력한다.