import java.io.*;
import java.util.*;
import java.math.BigInteger;

public class ACM99Cmjd // Problem C of 1999 ACM regional contest
{
   public static void main(String args[])
   {
   try {
     BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

     while (true)
     {
       String line = in.readLine();
       int b = Integer.parseInt(line);
       if (b==0) return;

       line = in.readLine();
       StringTokenizer token = new StringTokenizer(line);
       if (token.countTokens() != b) throw new Error("bad tokens");
       ArrayList R = new ArrayList(b);
       for (int i=0; token.hasMoreTokens(); i++)
       {
         R.add(new BigInteger(token.nextToken()));
       }

       int sum = 1999;
       ArrayList DP = new ArrayList(b);

       ArrayList row1 = new ArrayList(sum+1);
       for (int j=0; j<=sum; j++) row1.add(new BigInteger("1"));
       DP.add(row1);

       for (int i=1; i<b; i++)
       {
         ArrayList row = new ArrayList(sum+1);
         row.add(new BigInteger("1")); // for 0 resistance

         for (int j=1; j<=sum; j++)
         {
           BigInteger Rj = (BigInteger) ((ArrayList) DP.get(i-1)).get(j);
           int idx = j - ((BigInteger) R.get(i)).intValue();
           if (idx >= 0) Rj = Rj.add((BigInteger) row.get(idx));
           row.add(Rj);  // for j resistance (first i resistors)
         } 

         DP.add(row);
       }

       while (true)
       {
         line = in.readLine();
          sum = Integer.parseInt(line);
         if (sum==0) break;

         System.out.println( ((ArrayList) DP.get(b-1)).get(sum) );
       }
     }
   } catch (Exception e) { System.err.println("Exception: " + e); }
   }  
}

