#include <stdio.h>
#define MAXH 1000
#define MAXL 1000

long long n,m;
long long a[2][MAXH];
long long s;
long long co;
long long temp[3];

long long modu(long long a)
{
  if(a<0) return -a;
   return a;
}

long long calc(long long coor,long long i)
{
 return modu(a[0][i]-coor)*a[1][i];
}

int dv(long long l,long long r)
{ long long sum=0,i;
  co=l;
  while(l<=r) {
    sum=0;
    for(i=0;i<m;i++) sum+=calc((l+r)/2,i);
    if(s>sum)  l=((l+r)/2);
     else if(s<sum) r=((l+r)/2);
      else {co=((l+r)/2);return 1;}
  }
  co=((l+r)/2);
  return 0;
}

int main()
{ long long i,sum;

  freopen("proba1.in","r",stdin);
  freopen("proba1.out","w",stdout);
  scanf("%lld %lld",&n,&m);
  for(i=0;i<m;i++) {
     scanf("%lld %lld",&a[0][i],&a[1][i]);
  }

  for(i=0;i<n;i++) {
   scanf("%lld",&s);
  if(dv(-MAXL,MAXL)==1) printf("%lld 0\n",co);
   else {
   temp[0]=0;
   for(i=0;i<m;i++) {
     temp[0]+=calc(co-1,i);
    }

   temp[1]=0;
   for(i=0;i<m;i++) {
     temp[1]+=calc(co,i);
    }

   temp[2]=0;
   for(i=0;i<m;i++) {
     temp[2]+=calc(co+1,i);
    }
    if(temp[0]<=temp[1] && temp[0]<=temp[2]) printf("%lld %lld\n",co-1,temp[0]);
     else if(temp[1]<=temp[0] && temp[1]<=temp[2]) printf("%lld %lld\n",co,temp[1]);
       else printf("%lld %lld\n",co+1,temp[2]);
   }
  }
return 0;
}

