/*
TASK:skok
LANG:C++
*/
#include <iostream>

using namespace std;

long N, M;
long js [256];
long t [200000];
short killer_flag = 0;
long result1 = 0;
int result2;
long pres = 0;

void boomer (long c)
{
    pres += t[c];
    int i;
    for (i = 0; i < M; i++)
    {
        if ((c + js[i]) < N)
            boomer (c + js[i]);
        else
            if (pres > result1)
            {
                result1 = pres;
                result2 = c;
            }
    }
    pres -= t[c];
}            

int main ()
{
    long i;
    cin >> N >> M;
    for (i = 0; i < M; i++)
        cin >> js[i];
    for (i = 0; i < N; i++)
    {
        cin >> t[i];
        result1 += t[i];
        if (t[i] == 1)
            killer_flag = 1;
        result2 = i;
    }
    if (killer_flag == 1)
    {
        cout << result1 << ' ';
        for (; t[result2] == 0 ; result2--);
        cout << result2 << '\n';
        return 0;
    }
    result1 = 0;
    result2 = 0;
    boomer (0);
    cout << result1 << ' ' << result2 << '\n';
    return 0;
}
