uses crt;
var n,x,i,d:integer;
begin
clrscr;
repeat
write('Nhap n='); readln(n);
until n>0;
for i:=n downto 1 do
if (n mod i=0) and (i mod 2=0) then
begin
x:=i;
d:=0;
repeat
x:=x div 2;
inc(d);
until x mod 2=1;
if x=1 then
begin
write(i);
break;
end;
end;
readln;
end.