
/*
TASK: festb
LANG: C++
*/

#include <iostream>
#include <cstdlib>
#include <cmath>

using namespace std;

#define MAXM 200001

typedef long long large;

struct Home {
    long x;
    int p;
} h[MAXM];

long m, n;
large S, Sum[MAXM];

int fcmp( const void* a, const void* b )
{
    if( ((Home *) a)->x > ((Home *) b)->x )
        return 1;
    if( ((Home *) a)->x < ((Home *) b)->x )
        return -1;

    return 0;
}

void input()
{
    int i;

    cin >> m >> n;

    for( i = 0; i < m; i++ )
        cin >> h[i].x >> h[i].p;

    qsort( h, m, sizeof( h[0] ), fcmp );
}

large calcSum( long px )
{
    large sum = 0;
    int i;

    for( i = 0; i < m; i++ )
        sum += h[i].p * abs( h[i].x - px );

    return sum;
}

large lgabs( large t )
{
    if( t < 0 )
        return -t;
    return t;
}

void solve()
{
    int xi = h[0].x;
    int xj = h[m - 1].x;
    long c, k;
    large min, t;

    while( calcSum( xi ) <= S ) xi--;
    while( calcSum( xj ) <= S ) xj++;

    min = calcSum( xi ) - S;
    c = xi;
    t = calcSum( xj ) - S;
    if( t < min ) {
        min = t;
        c = xj;
    }

    for( k = xi; k <= xj; k++ ) {
        t = lgabs( calcSum( k ) - S );
        if( t < min ) {
            min = t;
            c = k;
        }
    }

    cout << c << " " << min << "\n";
}
    


int main()
{
 int k;
    input();
    
    for( k = 0; k < n; k++ )
       cin >> Sum[k];

    for( k = 0; k < n; k++ ) {
       S = Sum[k];
       solve();
    }

    return 0;
}
