uses crt;
var a,b,i,n,m,min:longword;
function sum(n:longword):word;
var d:word;
begin
d:=0;
while n<>0 do
begin
d:=d+(n mod 10);
n:=n div 10;
end;
sum:=d;
end;
begin
clrscr;
readln(n,m);
a:=trunc(sqrt(n));
b:=trunc(sqrt(m));
if frac(sqrt(n))<>0 then a:=a+1;
min:=a*a;
for i:=a to b do
begin
write(i*i,' ');
if sum(min)>sum(i*i) then min:=i;
end;
writeln(#13#10,min);
readln;
end.