/*
TASK:skok
LANG:C
*/
/*
  Name: skok
  Author: Radoslav Rachev B_Vn_MG_3
  Date: 10.02.07 16:02
  Description: ZMS Varna '07 B2
*/
#define N 200000
#include <stdio.h>

    
int main ()
{
    int i,j,n,m,len[202]={0},max=0,ind=0;
    int a[N+2]={0},b[N+2]={0},*p,*q,*tmp;
    
    scanf ("%d %d",&n,&m);
    for (i=0;i<m;i++)
        scanf ("%d",&len[i]);
    for (i=0;i<=n;i++)
        scanf ("%d",&a[i]);
 
    b[0]=a[0];
    for (i=0;i<m;i++)
        for (j=len[i];j<=n;j++)
            {
                if (b[j-len[i]])
                    if (b[j-len[i]]+a[j]>b[j])
                        b[j]=b[j-len[i]]+a[j];
            }
        
    for (i=0;i<=n;i++)
        if (b[i]>max)
            {
                max=b[i];
                ind=i;
            }
        
    printf ("%d %d\n",max,ind);
        
    return 0;
}
