#include <iostream>
#include <cstring>

using namespace std;

//DP(®Ivæ@)
int main() {

  while(1) {

    int m; //J[hÌíÞ
    int a[10],b[10]; //J[hÌÆ»Ì
    int g; //Q[ñ
    int n; //aÉµ½¢
 
    int dp[8][1001]; //DPe[u

    cin >> m;

    if(m==0) break;

    for(int i=0;i<m;i++) cin >> a[i] >> b[i];

    cin >> g;


    //DPe[uð0Åú»
    memset(dp,0,sizeof(dp));

    //0ÔÚÜÅÌJ[hðgÁÄ0ðìéû@Í1Êè
    dp[0][0]=1;

    //·×ÄÌíÞÌJ[hÉÂ¢Ä
    for(int i=0;i<m;i++) {

      //0`1000ÜÅÌ·×ÄÌ®ðìéû@ðDPe[uÉLq
      for(int j=0;j<=1000;j++) {

	//i+1ÔÚÜÅÌJ[hðgÁÄjðìé½ßÉÍAiÔÚÜÅÌJ[hðgÁÄj-k*a[i](½¾µ0<=k<=b[i],0<=k*a[i]<=jð½·)ðìé±ÆªoÈ¯êÎÈçÈ¢
	for(int k=0;k<=b[i] && k*a[i]<=j;k++) {

	  //±êð«µÄ¢­±ÆÅAi+1ÔÚÜÅÌJ[hðgÁÄjðìéû@ÌêÌªßçêé
	  dp[i+1][j]+=dp[i][j-k*a[i]];

	}

      }

    }

    for(int i=0;i<g;i++) {

      cin >> n;

      //æÉe[uðìÁÄ¢éÌÅA·ÅÉdp[m][n]ÉÍAmÔÚÜÅÌJ[hðgÁÄnðìéû@ÌêÌA·Èí¿¡ñÌ¦ªL³êÄ¢é
      cout << dp[m][n] << endl;
	
    }

  }

  return 0;

}