#include <iostream>
#include <sstream>
#include <iterator>
#include <algorithm>
#include <vector>
#include <string>
#include <cctype>
void in(std::string & text);
void split(std::string text, std::vector<std::string> & words);
void sort(std::vector<std::string> & words);
void out(std::vector<std::string> const& words);
int main() {
std::string text;
std::vector<std::string> words;
in(text);
split(text, words);
sort(words);
out(words);
}
void in(std::string & text) {
text.assign(
(std::istreambuf_iterator<std::string::value_type>(std::cin)),
std::istreambuf_iterator<std::string::value_type>());
}
void split(std::string text, std::vector<std::string> & words) {
std::replace_if(text.begin(), text.end(), ::ispunct, ' ');
std::istringstream iss(text);
words.assign(std::istream_iterator<std::string>(iss), std::istream_iterator<std::string>());
}
void sort(std::vector<std::string> & words) {
std::sort(words.begin(), words.end());
}
void out(std::vector<std::string> const& words) {
std::copy(words.begin(), words.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y2N0eXBlPgoKCnZvaWQgaW4oc3RkOjpzdHJpbmcgJiB0ZXh0KTsKdm9pZCBzcGxpdChzdGQ6OnN0cmluZyB0ZXh0LCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gJiB3b3Jkcyk7CnZvaWQgc29ydChzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gJiB3b3Jkcyk7CnZvaWQgb3V0KHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBjb25zdCYgd29yZHMpOwoKCmludCBtYWluKCkgewogICBzdGQ6OnN0cmluZyB0ZXh0OwogICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gd29yZHM7CiAgIAogICBpbih0ZXh0KTsKICAgc3BsaXQodGV4dCwgd29yZHMpOwogICBzb3J0KHdvcmRzKTsKICAgb3V0KHdvcmRzKTsKfQoKCnZvaWQgaW4oc3RkOjpzdHJpbmcgJiB0ZXh0KSB7CiAgIHRleHQuYXNzaWduKAogICAgIChzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8c3RkOjpzdHJpbmc6OnZhbHVlX3R5cGU+KHN0ZDo6Y2luKSksCiAgICAgIHN0ZDo6aXN0cmVhbWJ1Zl9pdGVyYXRvcjxzdGQ6OnN0cmluZzo6dmFsdWVfdHlwZT4oKSk7Cn0KCnZvaWQgc3BsaXQoc3RkOjpzdHJpbmcgdGV4dCwgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ICYgd29yZHMpIHsKICAgc3RkOjpyZXBsYWNlX2lmKHRleHQuYmVnaW4oKSwgdGV4dC5lbmQoKSwgOjppc3B1bmN0LCAnICcpOwogICBzdGQ6OmlzdHJpbmdzdHJlYW0gaXNzKHRleHQpOwogICB3b3Jkcy5hc3NpZ24oc3RkOjppc3RyZWFtX2l0ZXJhdG9yPHN0ZDo6c3RyaW5nPihpc3MpLCBzdGQ6OmlzdHJlYW1faXRlcmF0b3I8c3RkOjpzdHJpbmc+KCkpOwp9Cgp2b2lkIHNvcnQoc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ICYgd29yZHMpIHsKICAgc3RkOjpzb3J0KHdvcmRzLmJlZ2luKCksIHdvcmRzLmVuZCgpKTsKfQoKdm9pZCBvdXQoc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IGNvbnN0JiB3b3JkcykgewogICBzdGQ6OmNvcHkod29yZHMuYmVnaW4oKSwgd29yZHMuZW5kKCksIHN0ZDo6b3N0cmVhbV9pdGVyYXRvcjxzdGQ6OnN0cmluZz4oc3RkOjpjb3V0LCAiXG4iKSk7Cn0K
V2hhdCx0aGUsIGhlY2sKICAgaXMsZ29pbmcsCiAsIG9uPw==
What,the, heck
is,going,
, on?