#include <iostream>

int numOfWays(int a[], int b[], int m, int n, int index)
{
	if (n<0) return 0;
	if (n==0) return 1;
	if (index == m) return 0;
	int res = 0;
	for (int k=0; k<=b[index]; k++) {
		res += numOfWays(a, b, m, n - k*a[index], index+1);
	}
	return res;
}

int main()
{
	int m;
	while (true) {
		std::cin >> m;
		if (m==0) break;
		int a[7], b[7];
		for (int i=0; i<m; i++) std::cin >> a[i] >> b[i];
		int g; std::cin >> g;
		for (int i=0; i<g; i++) {
			int n;
			std::cin >> n;
			std::cout << numOfWays(a, b, m, n, 0) << std::endl;
		}
	}
	return 0;
}

