/*
TASK:skok
LANG:C++
*/
#include <iostream>
using namespace std;
int M,N,m[256],n[262144];
int sum[262144];
bool dae[262144];
void solve()
{
     dae[0]=1;
     sum[0]=n[0];
     
     for(int i=0;i<=N;i++)
             if(dae[i])
             {
                       for(int j=1;j<=M;j++)
                               if(sum[i]+n[i+m[j]]>sum[i+m[j]]) 
                               {
                                                                sum[i+m[j]]=sum[i]+n[i+m[j]];
                                                                dae[i+m[j]]=1;
                               }
             }
}
int main()
{
    cin>>N>>M;
    for(int i=1;i<=M;i++)
            cin>>m[i];
    for(int i=0;i<=N;i++)
            cin>>n[i];
    
    solve();
    int MAX=0;
    for(int i=0;i<=N;i++)
            if(sum[MAX]<sum[i])  MAX=i;
    cout<<sum[MAX]<<" "<<MAX<<endl;
}
