/*
TASK:skok
LANG:C++
*/
#include<stdio.h>
#include<algorithm>
#define MN 200002
using namespace std;
long n,m,v[MN];
long a[MN],s[202];
void solve()
{
    long i,j,max;
    scanf("%ld%ld",&n,&m);
    for(i=0;i<m;i++)
        scanf("%ld",&s[i]);
    for(i=0;i<=n;i++)
        scanf("%ld",&a[i]);
    sort(s,s+m);
    v[0]=a[0];
    for(i=1;i<=n;i++)
    {
        max=0;
        for(j=0;j<m;j++)
        {
            if(i-s[j]>=0)
            {
               if(max<v[i-s[j]]+a[i])
                   max=v[i-s[j]]+a[i];
            }
            else break;
        }
        v[i]=max;
    }
    max=0;
    for(i=0;i<=n;i++)
        if(max<v[i])
        {
          max=v[i];
          j=i;
        }
    printf("%ld %ld\n",max,j);
}
int main()
{
   solve();
   return 0;
}
