words = input().split()
words.reverse()

# Пока выводим по одному слову в строке. Скоро научимся выводить сразу много слов в одной строке.
for word in words:
    print(word)

"""
Explanation: <h1>Содержание<span class="tocSkip"></span></h1>
<div class="toc"><ul class="toc-item"><li><span><a href="#Ввод" data-toc-modified-id="Ввод-1">Ввод</a></span><ul class="toc-item"><li><span><a href="#Ввод-списка--слов-из-одной-строки" data-toc-modified-id="Ввод-списка--слов-из-одной-строки-1.1">Ввод списка  слов из одной строки</a></span></li><li><span><a href="#Ввод-списка-чисел-из-одной-строки" data-toc-modified-id="Ввод-списка-чисел-из-одной-строки-1.2">Ввод списка чисел из одной строки</a></span></li><li><span><a href="#Ввод-двух-чисел-из-одной-строки" data-toc-modified-id="Ввод-двух-чисел-из-одной-строки-1.3">Ввод двух чисел из одной строки</a></span></li></ul></li><li><span><a href="#Вывод" data-toc-modified-id="Вывод-2">Вывод</a></span><ul class="toc-item"><li><span><a href="#Аргументы-функции-print" data-toc-modified-id="Аргументы-функции-print-2.1">Аргументы функции <code>print</code></a></span></li><li><span><a href="#Вывод-многих-значений-в-одной-строке" data-toc-modified-id="Вывод-многих-значений-в-одной-строке-2.2">Вывод многих значений в одной строке</a></span></li><li><span><a href="#Форматированный-вывод" data-toc-modified-id="Форматированный-вывод-2.3">Форматированный вывод</a></span></li></ul></li></ul></div>

Продвинутый ввод-вывод
Ввод
Ввод списка  слов из одной строки
Python позволяет считывать с помощью функции input() только всю строку целиком до следующего перевода строки.
Но что делать, если мы хотим считать несколько значений из одной строки? В этом нам поможет метод split(). Давайте напишем программу, которая считывает несколько слов из одной строки и выводит их в обратном порядке:
End of explanation
"""


# Считываем одну строку с клавиатуры. Она содержит все символы, включая пробелы.
line = input()
print('Строка: "' + line + '"')

# Разбиваем строку по пробельным символам и получаем список слов
words = line.split()
print('Список отдельных слов:', words)

# Переворачиваем список слов
words.reverse()
print('Перевёрнутый список слов:', words)

# Проходим по всем словам из списка и выводим каждое
for word in words:
    print(word)

"""
Explanation: То же самое более подробно:
End of explanation
"""


line = input.split()

"""
Explanation: Частая ошибка — забыть скобки после input:
End of explanation
"""


words = input().split()

# Преобразуем строки в числа
numbers = []
for word in words:
    numbers.append(int(word))

print("Числа:", numbers)

"""
Explanation: Ошибка переводиться с английского как ОшибкаАтрибута: У объекта типа 'функция' нет атрибута 'split'.
Так происходит потому что:

input — это объект-функция (тип function)
input() — это вызов функции, который возращает строку (тип str)
У объектов типа str (строк) определён метод split, а у объектов типа function (функций) — нет
Мы попытались вызвать метод split у объекта типа function

Похожая проблема произойдёт если забыть скобки после split.
Ввод списка чисел из одной строки
Чтобы считать одно число из строки, нам приходилось преобразовывать результат функции input() к целому числу (int(input())), потому что input() возращает строку (str).
input().split() возращает список строк. Если мы хотим получить список чисел, то нам надо преобразовать каждую из этих строк в число. Самый прямолинейный способ это сделать — используя цикл:
End of explanation
"""


# Такое считывание работает быстрее, чем предыдущий пример
numbers = list(map(int, input().split()))
print("Числа:", numbers)

"""
Explanation: Обратите внимание на отсутствие кавычек вокруг элементов списка. Это значит, что у нас там числа, а не строки.
Но Python позволяет сделать то же самое короче и эффективнее, использовав немного чёрной магии:
End of explanation
"""


# Обратите внимание на отсутствие преобразования в список. Здесь в нём нет необходимости.
a, b = map(int, input().split())
print(a, type(a))
print(b, type(b))

"""
Explanation: Функция map(func, lst) возращает «список», полученный применением функции func к каждому элементу списка lst.
Мы взяли «список» в кавычки, потому что это не совсем список, а объект типа map, который иногда ведёт себя также как список, а иногда — нет. Поэтому мы явно преобразуем результат в полноценный список (list).
Ввод двух чисел из одной строки
Для этого надо считать список чисел и сделать параллельное присваивание:
End of explanation
"""


# Обратите внимание на отсутствие преобразования в список. Здесь в нём нет необходимости.
a, b, c = map(int, input().split())
print(a, type(a))
print(b, type(b))
print(c, type(c))

"""
Explanation: Аналогично можно ввести три числа:
End of explanation
"""


first_name, last_name = input().split()
print(first_name, type(first_name))
print(last_name, type(last_name))

"""
Explanation: Или две строки:
End of explanation
"""


day, month, year = '5', '07', '2018'
# День месяц и год выводятся через точку, а не через пробел
print(day, month, year, sep='.')

# В конце вывелись три восклецательных знака. Между "Sparta" и "!!!" нет пробела.
print("This", "is", "Sparta", end="!!!")

# Выводим список чисел в одну строку
for x in [1, 1, 2, 3, 5, 8, 13, 21]:
    # Заменяем end на пробел, чтобы продолжать выводить в той же строке
    print(x, end=" ")
# Выводим первод строки в конце
print()

"""
Explanation: Вывод
Аргументы функции print
Как вы уже знаете, функция print принимает сколько угодно значений и выводит их через пробел. Но у неё есть два дополнительных аргумента:

sep — что выводить между значениями. По умолчанию " " (пробел). От английского separator — разделитель.
end — что выводить после последнего значениями. По умолчанию "\n" (перевод строки).

Задаются они в конце после всех аргументов:
End of explanation
"""


numbers = [1, 1, 2, 3, 5, 8, 13, 21]
print(*numbers)

"""
Explanation: Вывод многих значений в одной строке
Выше показан способ это сделать, но он слишком многословен. Того же самого можно добиться так:
End of explanation
"""


a, b = 8, 13
# Значения подставляются вместо фигурных скобок:
print('{} + {} = {}'.format(a, b, a + b))

# Получаем доступ к переменной pi из
from math import pi

# По умолчанию для дробных чисел выводиться некоторое фиксированное количество знаков после точки
print(pi)

# Так можно точно указать точность
print('{:.5}'.format(pi))
print('{:.30}'.format(pi))

"""
Explanation: print(*lst) — это то же самое, что и передать все элементы списка функции: print(lst[0], lst[1], ..., lst[len(lst) - 1]).
Форматированный вывод
Для более сложного вывода можно воспользоваться методом format. Он позволяет подставить значения в произвольную строку.
End of explanation
"""


