/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 *//*
 package lunch;
 */

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author cteam061
 */
public class Lunch {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String[] line;
        while ((line = br.readLine().split(" ")) != null) {

            if (line[0].compareTo("0") == 0 && line[1].compareTo("0") == 0
                    && line[2].compareTo("0") == 0 && line[3].compareTo("0") == 0 && line[4].compareTo("0") == 0) {
                return;
            }

            int upperLimit = Integer.parseInt(line[0]);
            int soups = Integer.parseInt(line[1]);
            int mainLunch = Integer.parseInt(line[2]);
            int desert = Integer.parseInt(line[3]);
            int beverage = Integer.parseInt(line[4]);

                //String[] soupsLine = br.readLine().split(" ");
                /*String[] mainLine = br.readLine().split(" ");
             String[] desertLine = br.readLine().split(" ");
             String[] beverageLine = br.readLine().split(" ");*/
            ArrayList<Integer> soupsLine = new ArrayList<>();
            ArrayList<Integer> mainLine = new ArrayList<>();
            ArrayList<Integer> desertLine = new ArrayList<>();
            ArrayList<Integer> beverageLine = new ArrayList<>();

            StringBuilder builder = new StringBuilder();
            char c;
            while ((c = (char) br.read()) != '\n') {
                if (c != ' ') {
                    builder.append(c);
                } else {
                    soupsLine.add(Integer.valueOf(builder.toString()));
                    builder.delete(0, builder.length());
                }
            }
            soupsLine.add(Integer.valueOf(builder.toString()));
            builder.delete(0, builder.length());
            while ((c = (char) br.read()) != '\n') {
                if (c != ' ') {
                    builder.append(c);
                } else {
                    mainLine.add(Integer.valueOf(builder.toString()));
                    builder.delete(0, builder.length());
                }
            }
            mainLine.add(Integer.valueOf(builder.toString()));
            builder.delete(0, builder.length());
            while ((c = (char) br.read()) != '\n') {
                if (c != ' ') {
                    builder.append(c);
                } else {
                    desertLine.add(Integer.valueOf(builder.toString()));
                    builder.delete(0, builder.length());
                }
            }
            desertLine.add(Integer.valueOf(builder.toString()));
            builder.delete(0, builder.length());
            while ((c = (char) br.read()) != '\n') {
                if (c != ' ') {
                    builder.append(c);
                } else {
                    beverageLine.add(Integer.valueOf(builder.toString()));
                    builder.delete(0, builder.length());
                }
            }
            beverageLine.add(Integer.valueOf(builder.toString()));

        
            for (int soupPrice : soupsLine) {
                System.out.println(soupPrice);
            }
            
            /*
                 
                
             for (int i = 0; i < soups; i++) {
             int soupPrice = 0;
                    
                    
             if(soupPrice > upperLimit-3)continue;
             for (int j = 0; j < mainLunch; j++) {
             int mainPrice = Integer.parseInt(mainLine[j]);
                        
             if(soupPrice+mainPrice > upperLimit-2)continue;
             for (int k = 0; k < desert; k++) {
             int desertPrice = Integer.parseInt(desertLine[k]);
                            
             if(soupPrice+mainPrice+desertPrice > upperLimit-1)continue;
             for (int l = 0; l < beverage; l++) {
             int beveragePrice = Integer.parseInt(beverageLine[l]);
                                
             if (soupPrice + mainPrice + desertPrice + beveragePrice <= upperLimit) {
             numberOfLunches++;
             }
                                
             }
             }
             }
             }*/
            long numberOfLunches = 0;
            for (int soupPrice : soupsLine) {
                if (soupPrice > upperLimit - 3) {
                    continue;
                }
                for (int mainPrice : mainLine) {
                    if (soupPrice + mainPrice > upperLimit - 2) {
                        continue;
                    }
                    for (int desertPrice : desertLine) {
                        if (soupPrice + mainPrice + desertPrice > upperLimit - 1) {
                            continue;
                        }
                        for (int beveragePrice : beverageLine) {
                            if (soupPrice + mainPrice + desertPrice + beveragePrice <= upperLimit) {
                                numberOfLunches++;
                            }

                        }
                    }

                }

            }
            System.out.println(numberOfLunches);
            br.readLine();
        }
    }
    
    public class Comparator<Integer> implements Comparable<Integer>{

        @Override
        public int compareTo(Integer o) {
            if(this.compareTo(o) == 0)return 0;
            return 0;
        }
        
    }

}