program kutevi;

var
   n, k, i, j : integer;
   zna : array[1 .. 10] of integer;
   treba : array[1 .. 10] of integer;
   bio : array[0 .. 360] of boolean;

function GlavnaMjera (kut : longint) : integer;
begin
   if kut>0 then
      GlavnaMjera := kut-trunc(kut/360)*360
   else
      GlavnaMjera := kut-(trunc(kut/360)-1)*360;
end;

procedure Nadji (tr : longint);
var
   x : longint;
begin
   x := GlavnaMjera (tr);
   if bio[x] then exit;
   bio[x] := true;
   for i := 1 to n do begin
      Nadji (tr+zna[i]);
      Nadji (tr-zna[i]);
   end;
end;


begin
   readln (n, k);
   for i := 1 to n do read (zna[i]);
   readln;
   for j := 1 to k do read (treba[j]);
   readln;
   Nadji (0);
   for i := 1 to k do
      if bio[treba[i]] then writeln ('DA') else writeln ('NE');
end.
