import java.util.PriorityQueue;
import java.util.Scanner;
import java.util.TreeMap;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		PriorityQueue<Integer> queue=new PriorityQueue<>();
		Scanner scanner=new Scanner(System.in);
		int n=scanner.nextInt();
		int m=scanner.nextInt();
		int max=0;
		for (int i = 0; i < n; i++) {
			int x=scanner.nextInt();
			queue.add(x);
			if(x>max)max=x;
			
		}
		for (int i = 0; i < m; i++) {
			int b=scanner.nextInt();
			int x=queue.poll();
			queue.add(x+b);
			if(x+b>max)max=x+b;
			System.out.println(max);
			
		}
		

	}

}

这题我试了好几种方法,只有只用目前这种优先队列的才能过,连TreeMap都只能过17个测试点。其实我一开始用的就是优先队列,但是我不知道如何去求优先队列的最大值,我想过遍历它,把它转换为数组,都不行,要么超时,要么根本行不通,然后我看了题解,学会了通过创建一个max变量,在每一次添加数据的时候,判断添加的值是否大于max,如果是就更新它,以此来获取最大值,这一点我感觉非常妙