#include<algorithm>
#include<iostream>
#include<string>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
int f(int a[],int b[],int c[],int d[],int p,int q,int m,int n){
  int sm=0;
  if(p!=m){
    if(d[p]+q>=n){
      sm+=f(a,b,c,d,p+1,q,m,n);
      for(c[p]++;c[p]<b[p]+1;c[p]++){
	q+=a[p];
	if(0){
	}else if(q>n){
	  break;
	}else if(q<n){
	  sm+=f(a,b,c,d,p+1,q,m,n);
	}else{
	  sm++;
	  break;
	}
      }
      c[p]=0;
    }
  }
  return sm;
}
int main(){
  int i;
  int a[7],b[7],c[7],d[8],z[10],m,n,o;
  memset(c,0,sizeof(c));
  while(cin>>m&&m){
    for(i=0;i<m;i++)
      cin>>a[i]>>b[i];
    d[m]=0;
    for(i=m-1;i>-1;i--)
      d[i]=d[i+1]+a[i]*b[i];
    cin>>o;
    for(i=0;i<o;i++){
      cin>>n;
      z[i]=f(a,b,c,d,0,0,m,n);
    }
    for(i=0;i<o;i++)
      cout<<z[i]<<endl;
  }
  return 0;
}