//Так как я сегодня у мамы гуманитарий, считать мне всё это лень
//Преобразую код так, чтобы он сам возвращал мне все варианты
//Pascal ABC.NET Версия 2.2 Сборка 790
VAR x,L,M,g:integer;
begin
for x:=1 to 10000 do
begin;
L:=0;
M:=0;
g:=x;
while g>0 do
begin
M:=M+1;
if g mod 2<>0 then L:=L+1;
g:=g div 2;
end;
if (l=7) and (m=8) then writeln(x);
end;
end.
Возвращаемые значения:
191
223
239
247
251
253
254
Ответ: 254