/*
TASK:skok
LANG:c++
*/
#include<iostream>
using namespace std;
long N,a[20000],i,r;
int M,b[201],j,m[201],h;
int max(long x,long y)
{
if(x>y)return x;
return y;
}
int main()
{
cin>>N>>M;
for(j=0;j<M;j++)
 cin>>b[i];
for(i=1;i<=N+1;i++)
 cin>>a[i];
m[0]=a[1];
for(j=0;j<M;j++)
 for(int k=j;k<M;k++)
  {
   m[j]=m[j]+max(a[b[j]],a[b[k+1]]);
   b[j]=0; h=j;
  }
r=m[0];
for(j=1;j<M;j++)
 if(r<m[j])
  r=m[j];
cout<<r<<" "<<h+1<<"\n";
return 0;
}
