/*
TASK:skok
LANG:C++
*/
#include <iostream>
#include <algorithm>
using namespace std;

int m,n,jumps[201],ss[200001],i,j,k=0,f[200001];

int main(){
    cin>>n>>m;
    for(i=0;i<=n;i++) f[i]=-1;
    for(i=1;i<=m;i++) cin>>jumps[i];
    sort(jumps+1,jumps+m+1);
    for(i=0;i<=n;i++) cin>>ss[i];
    f[0]=ss[0];
    for(i=0;i<=n;i++){
        if(f[0]==-1) continue;
        if(f[k]<f[i]) k=i;
        for(j=1;j<=m;j++){
            if(i+jumps[j]>n) break;
            if(f[i+jumps[j]]<f[i]+ss[i+jumps[j]]){
                f[i+jumps[j]]=f[i]+ss[i+jumps[j]];
            }
        }
    }
    cout<<f[k]<<" "<<k<<"\n";
    return 0;
}

