/*
TASK: FESTB
LANG:C++
*/
#include<iostream>
#include<cmath>
using namespace std;

unsigned long int a[200000],x,re6[20000][3];
long b[200000],br=0,razl[200000]={-1},br1=0;
int c[3][3];

int main()
{
unsigned long int s , e ;
long m , n , p ;
cin >> m >> n ;
for ( int k=0 ; k<m ; k++ )
    cin >> a[k] >> b[k] ;
for ( int y=0 ; y<n ; y++ )
    {
    cin >> s ;
int max=0 ;
for ( int i=0 ; i<m ; i++ )
    if ( a[i]>a[max] )
    max=i ;
x=0;
for ( int t=a[max] ; x<=s ; t++ )
    {
    for ( int j=0 ; j<m ; j++ )
         x=x + ( t-a[j] ) * b[j];
    br++ ; razl[t]=fabs ( x-s ) ;
    }
int min=max ;
for  ( int u=0 ; u<m ; u++)
     if(a[min]>a[u])
     min=u ;
for ( u=a[min] ; x<=s ; u-- )
    {
    for ( int j=0 ; j<m ; j++ )
         x=x + ( a[j]-u ) * b[j];
    br++ ; razl[u]=fabs ( x-s ) ;
    }
int minr=s,op;
for ( int j=a[min]-br ; j<a[min] ; j++)
    if ( razl[j]<minr )
    {
    minr=razl[j] ; op=j ;
    }
c[1][1]=razl[j] ;
c[1][2]=op ;
minr=s;
for ( j=a[max] ; j<=a[max]+br ; j++ )
    if ( razl[j]<minr )
    {
    minr=razl[j] ; op=j ;
    }
if ( minr > c[1][1] )
     {
     br1++ ;
     re6[br1][1]=c[1][1] ;
     re6[br1][2]=c[1][2] ;
     }
else {
     br1++ ;
     re6[br1][1]=minr ;
     re6[br1][2]=op ;
     }
}
for ( int i=1 ; i<=br1 ; i++ )
    cout << re6[i][1] << " " << re6[i][2] <<endl ;
return 0;
}
