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


void rec(long t)
{int i,te;
 sum+=all[t];
 //cout<<t<<" sum->"<<sum<<" maxn-> "<<maxn<<endl;
 if (sum>maxx) {maxx=sum;maxn=t;} 
 if ((sum=maxx)&&(maxn>t))maxn=t;
 
  {cout<<maxx<<" "<<maxn<<endl;exit(0);
  }

 for(i=0;i<begin.size();i++) 
   if (begin[i]!=0){te=begin[i];
                    begin.erase(begin.begin()+i);
                    if (!(t+te>n))rec(te+i);
                    begin.insert(begin.begin()+i,te);
                    }
 sum-=all[t]; 
 return;
}

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