Var
   i,p,q,s,e,r,t,n: longint;
   a: array [1..7000] of longint;

Begin
     readln(input, p, q);
     if (p<0) then s:= 0
              else s:= trunc(sqrt(p));
     if (sqr(s) < p) then
        Inc(s);
     if (q<0) then e:= -1
              else e:= trunc(sqrt(q));
     n:= 0;
     for i:= s to e do
         begin
         t:= sqr(i); r:= 0;
         while (t<>0) do
               begin
               Inc(r, t mod 10);
               t:= t div 10;
               end;
         t:= trunc(sqrt(r));
         if (sqr(t) = r) then
            begin
            Inc(n);
            a[n]:= sqr(i);
            end;
         end;
     writeln(output, n);
     for i:= 1 to n do
         writeln(output, a[i]);
End.
