#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<algorithm>
#include<utility>
using namespace std;
#define int long long
int m;
int a[10];
int b[10];
int memo[1001][10];
int dp(int v,int now)
{
	if(v==0)return 1;
	if(now==m||v<0)return 0;
	if(memo[v][now]!=-1)return memo[v][now];
	int ans=0;
	for(int i=0;i<=b[now];i++)
	{
		ans+=dp(v-i*a[now],now+1);
	}
	return memo[v][now]=ans;
}
signed main()
{
	while(cin>>m&&m)
	{
		for(int i=0;i<1001;i++)for(int j=0;j<10;j++)memo[i][j]=-1;
		for(int i=0;i<m;i++)
		{
			cin>>a[i]>>b[i];
		}
		int g;cin>>g;
		for(int i=0;i<g;i++)
		{
			int n;
			cin>>n;
			cout<<dp(n,0)<<endl;
		}
	}
}