import re

text = input()
expression = r"(^|(?<=\s))-?([0]|[1-9][0-9]*)(.[0-9]+)?($|(?=\s))"
# ^ - старт
# | - или
# \s - празно място
# ? - провери
# ?<=\s - разгледай преди това дали има нещо, тоест преди първият знак, има ли такъв символ там.
# -? - 0 или един път, значи или има минус или, няма минус, проверка дали е отрицателно число или не е отрицателно число.
# [0]|[1-9][0-9]* - ако имам повече от една цифра,първата цифра трябва да е 1 до 9 и всички следващи,може да са от 0 до 9,
# но тогава пък аз изгубвам 1ците и трябва да сложа звезда, защото по този начин казвам или само една имам тук или ако имам
# повече от една цифра първата трябва да е не е 0 от 1-9 и следващите вече са от 0-9 * е нула или повече пъти.
# Или една цифра от  1 - 9 или повече от една цифра,като следващите може да са от 0 - 9
# \. - точката е специален символ и задълцително трябва тук да се сложи \ ред нея
# $ - край

matches = re.finditer(expression, text)

output = list()
for match in matches:
    output.append(match.group())

print(" ".join(output))



# :r[\W] - Хваща всички не-букви
# :r"[^A-Za-z] - Ако искаме да са само букви
# :r (^|(?<=[^A - Za-z])) - хваща момента където започва нова дума
# # I have new BMW