#include<bits/stdc++.h>
using namespace std;
#define maxn 1000001
int head=1,tail=1;
int q[maxn],d[maxn],f[maxn];
int n,qq,k;
inline int read();
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>d[i];
cin>>qq;
while(qq--)
{
cin>>k;
memset(f,0,sizeof(f));
memset(q,0,sizeof(q));
for(int i=2;i<=n;i++)
{
if(q[head]+k<i) head++;
f[i]=f[q[head]]+(d[q[head]]<=d[i]);
while(head<=tail && (f[q[tail]]>f[i] || (f[q[tail]]==f[i] && d[q[tail]]<d[i]))) tail--;
q[++tail]=i;
}
cout<<f[n]<<endl;
}
return 0;
}