블록
시간 제한3초메모리 제한512 MB
각 k마다, k보다 높은 더미의 맨 위 블록을 이웃으로만 옮겨서 높이가 k 이상인 연속한 더미 구간의 최대 길이를 구한다.
문제
바이티는 생일 선물로 나무 블록 한 세트를 받았다. 블록은 모두 크기가 같은 단위 정육면체여서 서로 구별할 수 없다. 바이티는 블록을 위로 쌓아 더미를 만들고, 이 더미들을 한 줄로 나란히 세워 놓는다. 더미의 높이는 서로 다를 수 있다.
바이티의 아버지 바이테아사르는 다음과 같은 퍼즐을 낸다. 정수 를 하나 정한 뒤, 높이가 이상인 더미가 연속으로 최대한 많이 이어지도록 블록을 재배치하라는 것이다.
단, 블록은 다음 규칙으로만 옮길 수 있다. 현재 높이가 보다 엄격하게 큰 더미에서 맨 위 블록 하나를 집어, 바로 양옆에 있는 더미 중 하나의 맨 위에 올려놓는다. 새로운 더미를 만들 수는 없고, 이미 있는 더미들 사이에서만 블록을 옮길 수 있다.
더미는 모두 개이고, 번째 더미의 처음 높이는 이다. 바이테아사르는 서로 독립적인 질문을 개 던진다. 각 값에 대해, 허용된 이동으로 얻을 수 있는 '높이가 이상인 연속한 더미'의 최대 개수를 구하라. 모든 질문은 처음 배치에서 새로 시작한다.
입력
첫째 줄에 두 정수 과 이 주어진다 (, ). 각각 더미의 개수와 바이테아사르의 질문 개수이다. 더미는 번부터 번까지 번호가 매겨져 있다.
둘째 줄에 개의 정수 이 주어진다 (). 는 번째 더미의 높이이다.
셋째 줄에 개의 정수 이 주어진다 (). 답을 구해야 하는 매개변수 의 값들이다.
출력
개의 정수를 공백 하나로 구분하여 출력한다. 번째 정수는 매개변수 에 대한 답, 즉 처음 배치에서 허용된 이동으로 얻을 수 있는 '높이가 이상인 연속한 더미'의 최대 개수이다.
힌트
