#include <fstream>
using namespace std;

const int N=10005,sizeM=2000000;
int v[N],n,D=-1,poz=0;
char s[2*sizeM],PRINT[sizeM];

ifstream in("punctfix.in");
ofstream out("punctfix.out");

inline bool cifra(char c)
{
	return '0'<=c && c<='9';
}

void get_num(int &x)
{
	int semn=1;
	while (s[poz]==' ')
		poz++;
	x=0;
	if (s[poz]=='-')
	{
		poz++;
		semn=-1;
	}
	while (cifra(s[poz]))
		x=x*10+s[poz++]-'0';
	x*=semn;
}

int bs(int x)
{
	int i,step=1<<13;
	for (i=0;step;step>>=1)
		if (i+step<=n && v[i+step]>=x)
			i+=step;
	return i;
}

void add_print(int x)
{
	if (!x)
		return;
	add_print(x/10);
	PRINT[++D]=x%10+'0';
}

int main()
{
	int m,i,x;
	in>>n;
	for (i=1;i<=n;i++)
	{
		in>>v[i];
		v[i]=i-v[i];
	}
	in>>m>>ws;
	in.getline(s,sizeM);
	while (m--)
	{
		get_num(x);
		x=bs(x)-bs(x+1);
		if (!x)
			PRINT[++D]='0';
		else
			add_print(x);
		PRINT[++D]='\n';
	}
	out<<PRINT;
	return 0;
}
