/*
TASK:skok
LANG:C++
*/
#include<iostream>
using namespace std;
int cr=0,sk[200],aleq[200000],max1=0,max2=0,pos=0,N,M;
void skok(int);
int main()
{
    int i,j;
    cin>>N>>M;
    for(i=0;i<M;i++)
    scanf("%d",&sk[i]);
    
    for(i=0;i<=N;i++)
     scanf("%d",&aleq[i]);
    
    skok(0);
    cout<<max1<<" "<<max2<<endl;
    

 return 0;   
}
void skok(int x)
{    
     int j;
     pos=pos+x;
     cr=cr+aleq[pos];
     if(cr>=max1)
     {
     if(cr>max1){max1=cr;max2=pos;}
     else if(max2>pos)max2=pos;
     }
     for(j=0;j<M;j++)
     if(pos+sk[j]<=N)skok(sk[j]);
     
     cr=cr-aleq[pos];
     pos=pos-x;
     return;
 }
 
