#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

using namespace std;

int cmpfunc(const void *a,const void *b)
{
    return (*(int*)a-*(int*)b);
}

int main()
{
    int price;
    int numOfS[4];
    int collections[4][2000];
    int counters[4];
    int stack[4];
    while(scanf("%d%d%d%d%d",&price,&numOfS[0],&numOfS[1],&numOfS[2],&numOfS[3])!=EOF)
    {
        if(price==0&&numOfS[0]==0&&numOfS[1]==0&&numOfS[2]==0&&numOfS[3]==0)
        {
            return 0;
        }
        memset(collections,0,sizeof(int)*2000*4);
        memset(counters,0,sizeof(int)*4);
        memset(stack,0,sizeof(int)*4);
        for(int i=0; i<4; i++)
        {
            for(int k=0; k<numOfS[i]; k++)
            {
                scanf("%d",&collections[i][k]);
            }
        }
        qsort(collections[0],numOfS[0],sizeof(int),cmpfunc);
        qsort(collections[1],numOfS[1],sizeof(int),cmpfunc);
        qsort(collections[2],numOfS[2],sizeof(int),cmpfunc);
        qsort(collections[3],numOfS[3],sizeof(int),cmpfunc);
        int curPrice=0;
        int i=0;
        int result=0;
        while(counters[0]<numOfS[0])
        {
            if(counters[i]<numOfS[i])
            {
                curPrice+=collections[i][counters[i]];
                stack[i]=collections[i][counters[i]];
                counters[i]++;
                i++;
                if(i>=3)
                {
                    int temp=price-curPrice;
                    int k=numOfS[i]-1;
                    while(collections[3][k]>temp&&k>=0)
                    {
                        counters[i]++;
                        k--;
                    }
                    if(k>=0)
                    {
                        result+=(k+1);
                        i--;
                        curPrice-=stack[i];
                    }
                    else
                    {
                        i--;
                        curPrice-=stack[i];
                    }
                }
            }
            else
            {
                counters[i]=0;
                i--;
                curPrice-=stack[i];
            }
        }
        printf("%d\n",result);
    }
    return 0;
}