//1e3可以枚举每个区间
//前缀和+差分
#include <iostream>
#include <cmath>
using namespace std;
const int N = 1e3+10;
typedef long long LL;
int b[N];
LL s[N];
int n,q;
int main()
{
cin>>n>>q;
for(int i=1;i<=n;i++)
{
cin>>s[i];
s[i]+=s[i-1];
}
for(int i=1;i<=n;i++)
for(int j=i;j<=n;j++)
{
LL sum=s[j]-s[i-1];
LL res=sqrt(sum);
if(res*res==sum)
{
b[j+1]--;
b[i]++;
}
}
for(int i=1;i<=n;i++) b[i]+=b[i-1];
while(q--)
{
int x;
cin>>x;
cout<<b[x]<<endl;
}
}