#include <iostream>
#include <algorithm>
using namespace std;

int a[10];
int b[10];
int dp[10][1010]; // x以下のカードのみを用いて数yになるパターン数

int main() {
  int m;
  
  while( cin >> m, m ) {
    fill( a, a+8, 0 );
    fill( a, b+8, 0 );
    for( int i=0; i<m; i++ ) {
      cin >> a[i] >> b[i];
    }
    
    fill(dp[0], dp[8], 0);
    dp[0][0] = 1;
    for( int i=0; i<m; i++ ) {
      for( int j=0; j<1001; j++ ) {
	if( dp[i][j] ) {
	  for( int k=0; k<=b[i]; k++ ) {
	    if( j+k*a[i] <= 1000 ) dp[i+1][j+k*a[i]] += dp[i][j];
	  }
	}
      }
    }
    
    int g;
    cin >> g;
    for( int i= 0; i<g; i++ ) {
      int q;
      cin >> q;
      cout << dp[m][q] << endl;
    }
  }
  
  return 0;
}