{
TASK:festb
LANG:PASCAL
}
{$R-}
{$N+}
var
{ t:text;}
 i,j,k,l,n,m,p:longint;
 a,b,f,le,ri:array [0..1024] of longint;
 ss:array [1..1024] of extended;
 s,s1:extended;

 function gets(k:longint):extended;
  var
   s1:extended;
   l,i:longint;
  begin
    s1:=0;
    for i:=1 to m do
     s1:=s1+abs(a[i]-k)*b[i];
    gets:=s1;
  end;

begin
{  assign (t,'festtx~1.txt');
  reset (t);}
  readln ({t,}m,n);
  for i:=1 to m do
   readln ({t,}a[i],b[i]);

  for i:=1 to m do
   ss[i]:=gets(a[i]);

  l:=0;
  for i:=1 to m do
   begin
     inc(l,b[i]);
     le[i]:=l;
   end;
  l:=0;
  for i:=m downto 1 do
   begin
     l:=l+b[i];
     ri[i]:=l;
   end;
  for i:=1 to m do
   f[i]:=le[i]+b[i]-ri[i];

  for l:=1 to n do
   begin
     readln ({t,}j);
     s:=1000000000;
     for i:=1 to m do
      if abs(ss[i]-j)<s then begin p:=a[i]; s:=abs(j-ss[i]); end;
     for i:=1 to m-1 do
      if f[i]<>0 then
       begin
         k:=round((j-ss[i])/f[i]);
         if (k>0)and(k+i<a[i+1]) then begin
         s1:=ss[i]+f[i]*k;
         if abs(j-s1)<s then
          begin p:=a[i]+k; s:=abs(j-s1); end; end;
       end;
     k:=round((j-ss[1])/ri[1]);
     if k>0 then begin
      s1:=ss[1]+ri[1]*k;
      if abs(j-s1)<s then begin p:=a[i]-k; s:=abs(j-s1); end;
      end;
     k:=round((j-ss[m])/le[m]);
     if k>0 then begin
      s1:=ss[m]+le[m]*k;
      if abs(j-s1)<s then begin p:=a[i]+k; s:=abs(j-s1); end;
      end;
     writeln (p,' ',s:0:0);
   end;

{  for i:=14 to 20 do
   write (gets(i):0:0,' ');
  writeln;}

{  close (t);}
end.