m1=0
m2=0
m3=0
x=10
while x!=0:
x=int(input())#вводим число
if m1<x:
m3=m2
m2=m1
m1=x
elif x>m2 and x>m3 and x<m1:
m3=m2
m2=x
elif x<m2 and x<m1 and x>m3:
m3=x
print(m1,m2,m3,sep=" ")
вот std алгоритм заключается в том что у нас три переменных и мы после нахождения максимума все переменные сдвигаем назад то есть m1 становится m2, m2 становится m3 а m1 присваивается новый максимум и так же тут случаи когда m2 или m3 больше старых но мешьше m1 он тогда просто меняет значение именно той переменной которой он больше
Открой рисунок,там где отмечено красным,должны быть зайцы