TopCoder

User's AC Ratio

NaN% (0/0)

Submission's AC Ratio

NaN% (0/0)

Tags

Description

有一些大小一樣的正方體積木,把它們排成一疊一疊的,每一疊都有若干塊積木整齊地堆好。現在給你一些K值,如果對於每個K,我只能進行下列操作:


每一次只能將高度超過K的那堆積木,拿一塊起來,放到旁邊那堆的積木上。而且一定要疊在某塊積木上面,不能放到地上。

請寫一個程式,計算出進行若干操作之後,高度能夠達到K塊積木以上的連續積木堆,最長的一段長度可能達到多少?

Input Format

輸入可能包含多筆測試資料。每一筆測試資料的第一列有兩個正整數N以及M (1<=N<=1000000, 1<=M<=50),分別代表整排積木的堆數,以及K值的數量。第二列有N個正整數依序代表由左至右N堆積木的高度。第三列有M個正整數,代表分別詢問的K值。所有數字都至少為1,至多為1000000000。輸入以EOF結束。

Output Format

對於每一筆測試資料,請輸出一列,包含M個恰以一個空白間隔的整數,代表對每個詢問的K值,能夠經過某些操作後得到的最長高度K以上的積木堆的長度。

Sample Input 1

5 6
1 2 1 1 5
1 2 3 4 5 6

Sample Output 1

5 5 2 1 1 0

Hints

Problem Source

Migrated from old NTUJ.

POI17th, stage II. prob2

Subtasks

No. Testdata Range Score

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 10000 65536 200