富婆价值最大化!
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

富婆看上了讨厌鬼,给予了讨厌鬼银行卡的密码,但是富婆的钱并不好骗,于是讨厌鬼制定了一个计划,计划表现为一个长度为 n 序列 a ,第 i 个数为 , 若为正数则说明该天可以从银行内取  块钱,若为负数则说明要存进 块钱.为了不被富婆发现,讨厌鬼必须选择连续一段天数进行操作,不可以不选。

于是讨厌鬼找到了你,希望你计算他有几种方法能使得到的钱最多,并且因为富婆不知道哪一天会改密码,讨厌鬼将提出 m 个询问,第 i 个询问表示在前  天时讨厌鬼有几种方法获得最多的钱又或者损失最少的钱。

输入描述:

第一行两个正整数 分别表示序列  的长度和询问的次数。

第二行  个用空格分开的整数,第  个为  表示讨厌鬼第  天可以获得的钱的数量。

接下来  行,每行一个整数 询问讨厌鬼在前i天时可以获得最多钱的方法数。

输出描述:

输出  行,每行一个整数,表示讨厌鬼可以得到最多钱的方法数。
示例1

输入

复制
5 3
-1 1 -1 1 1
2
4
5

输出

复制
1
3
2

说明

前2天,有且仅有1种,就是仅在第二天取钱
前4天,可以有[2,2],[2,4],[4,4]三种方法取到1块钱
前5天,有[4,5],[2,5]两种方法取到2块钱

备注:

数据读入输出量较大,请使用较快的读入输出方式。