#include <iostream>
#include <cstring>
using namespace std;
const int MAX_SIZE = 2000;
const int LAST_LETTER = 'z';
bool isLetter(char c) {
return ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z');
}
void addWords(char words[][MAX_SIZE + 1], char text[], int &lastPos) {
int length = strlen(text);
bool wasLetter = false;
for (int i = 0; i <= length; ++i) {
if (isLetter(text[i])) {
char c[] = {text[i], 0};
wasLetter = true;
strcat(words[lastPos], c);
} else if (wasLetter) {
++lastPos;
wasLetter = false;
}
}
}
void interchangeSeq(char firstWord[], char secondWord[]) {
char aux[MAX_SIZE + 1];
strcpy(aux, firstWord);
strcpy(firstWord, secondWord);
strcpy(secondWord, aux);
}
void sortWords(char words[][MAX_SIZE + 1]) {
for (int i = 0; words[i][0]; ++i) {
for (int j = i + 1; words[j][0]; ++j) {
if (strcmp(words[i], words[j]) > 0) {
interchangeSeq(words[i], words[j]);
}
}
}
}
char* greatestWord(char words[][MAX_SIZE + 1]) {
for (int i = 0; words[i][0]; ++i) {
int fr[LAST_LETTER + 1] = {0};
int n = strlen(words[i]);
for (int j = 0; j <= n; ++j) {
++fr[words[i][j]];
if (fr[words[i][j]] > 1) {
break;
} else if (words[i][j] == 0) {
return words[i];
}
}
}
char text[] = "Ist nicht vorhanden!";
char* ptr = text;
return ptr;
}
int main() {
char text[MAX_SIZE + 1], words[MAX_SIZE + 1][MAX_SIZE + 1] = {0};
int lastPos = 0;
while (cin.getline(text, MAX_SIZE + 1)) {
addWords(words, text, lastPos);
}
sortWords(words);
cout << greatestWord(words);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApjb25zdCBpbnQgTUFYX1NJWkUgPSAyMDAwOwpjb25zdCBpbnQgTEFTVF9MRVRURVIgPSAneic7CiAKYm9vbCBpc0xldHRlcihjaGFyIGMpIHsKICAgIHJldHVybiAoJ0EnIDw9IGMgJiYgYyA8PSAnWicpIHx8ICgnYScgPD0gYyAmJiBjIDw9ICd6Jyk7Cn0KIAp2b2lkIGFkZFdvcmRzKGNoYXIgd29yZHNbXVtNQVhfU0laRSArIDFdLCBjaGFyIHRleHRbXSwgaW50ICZsYXN0UG9zKSB7CiAgICBpbnQgbGVuZ3RoID0gc3RybGVuKHRleHQpOwogICAgYm9vbCB3YXNMZXR0ZXIgPSBmYWxzZTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IGxlbmd0aDsgKytpKSB7CiAgICAgICAgaWYgKGlzTGV0dGVyKHRleHRbaV0pKSB7CiAgICAgICAgCWNoYXIgY1tdID0ge3RleHRbaV0sIDB9OwogICAgICAgIAl3YXNMZXR0ZXIgPSB0cnVlOwogICAgICAgICAgICBzdHJjYXQod29yZHNbbGFzdFBvc10sIGMpOwogICAgICAgIH0gZWxzZSBpZiAod2FzTGV0dGVyKSB7CiAgICAgICAgICAgICsrbGFzdFBvczsKICAgICAgICAgICAgd2FzTGV0dGVyID0gZmFsc2U7CiAgICAgICAgfQogICAgfQp9CiAKdm9pZCBpbnRlcmNoYW5nZVNlcShjaGFyIGZpcnN0V29yZFtdLCBjaGFyIHNlY29uZFdvcmRbXSkgewoJY2hhciBhdXhbTUFYX1NJWkUgKyAxXTsKCXN0cmNweShhdXgsIGZpcnN0V29yZCk7CglzdHJjcHkoZmlyc3RXb3JkLCBzZWNvbmRXb3JkKTsKCXN0cmNweShzZWNvbmRXb3JkLCBhdXgpOwp9CiAKdm9pZCBzb3J0V29yZHMoY2hhciB3b3Jkc1tdW01BWF9TSVpFICsgMV0pIHsKICAgIGZvciAoaW50IGkgPSAwOyB3b3Jkc1tpXVswXTsgKytpKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyB3b3Jkc1tqXVswXTsgKytqKSB7CiAgICAgICAgICAgIGlmIChzdHJjbXAod29yZHNbaV0sIHdvcmRzW2pdKSA+IDApIHsKICAgICAgICAgICAgCWludGVyY2hhbmdlU2VxKHdvcmRzW2ldLCB3b3Jkc1tqXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KIApjaGFyKiBncmVhdGVzdFdvcmQoY2hhciB3b3Jkc1tdW01BWF9TSVpFICsgMV0pIHsKICAgIGZvciAoaW50IGkgPSAwOyB3b3Jkc1tpXVswXTsgKytpKSB7CiAgICAgICAgaW50IGZyW0xBU1RfTEVUVEVSICsgMV0gPSB7MH07CiAgICAgICAgaW50IG4gPSBzdHJsZW4od29yZHNbaV0pOwogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDw9IG47ICsraikgewogICAgICAgICAgICArK2ZyW3dvcmRzW2ldW2pdXTsKICAgICAgICAgICAgaWYgKGZyW3dvcmRzW2ldW2pdXSA+IDEpIHsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9IGVsc2UgaWYgKHdvcmRzW2ldW2pdID09IDApIHsKICAgICAgICAgICAgICAgIHJldHVybiB3b3Jkc1tpXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGNoYXIgdGV4dFtdID0gIklzdCBuaWNodCB2b3JoYW5kZW4hIjsKICAgIGNoYXIqIHB0ciA9IHRleHQ7CiAgICByZXR1cm4gcHRyOwp9CiAKaW50IG1haW4oKSB7CiAgICBjaGFyIHRleHRbTUFYX1NJWkUgKyAxXSwgd29yZHNbTUFYX1NJWkUgKyAxXVtNQVhfU0laRSArIDFdID0gezB9OwogICAgaW50IGxhc3RQb3MgPSAwOwogICAgd2hpbGUgKGNpbi5nZXRsaW5lKHRleHQsIE1BWF9TSVpFICsgMSkpIHsKICAgICAgICBhZGRXb3Jkcyh3b3JkcywgdGV4dCwgbGFzdFBvcyk7CiAgICB9CiAgICBzb3J0V29yZHMod29yZHMpOwogICAgY291dCA8PCBncmVhdGVzdFdvcmQod29yZHMpOwogICAgcmV0dXJuIDA7Cn0=