{


}
program praznik;
{
type aa=array[0..10000]of integerr;
     aaa=^aa;
     }
var a:array[1..10000]of word;
    b:array[1..1000]of longint;
    c:array[1..1000]of longint;
    t,r,qw,min,max,m,n,i,j,s,k,w,x,y:longint;
begin
readln(m,n);
min:=9999;
max:=-9999;
for i:=1 to m do
    begin
     readln(k,w);
     if k>max then max:=k;
     if k<min then min:=k;
     a[k]:=w;
    end;
for i:=1 to n do readln(b[i]);
for qw:=1 to n do
begin
   for i:=-200 to 200 do for j:=min to max do c[i]:=c[i]+abs(j-i)*a[j];
   k:=9999;
   max:=9999;
   for r:=-200 to 200 do
   begin
     if abs(c[r]-b[qw])<max then
     begin
       max:=abs(c[r]-b[qw]);
       k:=r;
     end;
   end;
   writeln(k,' ',max);
   for t:=-2000 to 2000 do c[t]:=0;
end;

{for j:=1 to n do
    begin
     for i:=-2000 to 2000 do
      begin
      if max:=b[i]

}
for i:=-4 to 10 do writeln(c[i])
end.