/*
TASK:skok
LANG:C++
*/
#include <iostream>
#include <vector>
using namespace std;
vector <int> all;
char begin[200];
int temp;
long m,n,j,i;
long long maxx,sum=0,maxn=1000000;

void rec(long t)
{long i,te;
// cout<<t<<" "<<maxx<<t<<" "<<maxx<<endl;
 sum+=all[t]; 
 
 
 if (sum>maxx) {maxx=sum;maxn=t;}
     else if ((sum=maxx)&&(maxn>t))maxn=t;
 for(i=1;i<200;i++) 
  if (begin[i]!=0)
                   {begin[i]--;
                    if ((t+i)<=n)rec(t+i);
                    begin[i]++;
                    }
 sum-=all[t]; 
 return;
}

int main()
{
cin>>n>>m;
for (i=0;i<200;i++){begin[i]=0;}
for (i=0;i<m;i++){cin>>j;begin[j]++;}
for (i=0;i<n+1;i++){
    cin>>temp;
    all.push_back(temp);
    }
maxx=all[0];
rec(0);
cout<<maxx<<" "<<maxn<<endl;
//system("pause");
    return 0;
}
