#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void word_to_bool(string word, bool letters[]) {
for (char c : word) {
if (isalpha(c)) {
letters[tolower(c) - 'a'] = true;
}
}
}
int count_letters(bool letters[]) {
int count = 0;
for (int i = 0; i < 26; i++) {
if (letters[i]) {
count++;
}
}
return count;
}
int main() {
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
bool max_letters[26] = {0};
int max_count = 0;
string max_words = "";
string line;
if (line == "") {
cout << "NULL\n";
return 0;
}
while (getline(cin, line)) {
int start = 0;
for (int i = 0; i <= line.size(); i++) {
if (i == line.size() || ispunct(line[i]) || isspace(line[i])) {
string word = line.substr(start, i - start);
bool letters[26] = {0};
word_to_bool(word, letters);
int count = count_letters(letters);
if (count > max_count) {
max_count = count;
max_words = word;
}
else if (count == max_count) {
max_words += " " + word;
}
start = i + 1;
}
}
}
if (max_count == 0) {
cout << "-1\n";
}
else {
cout << max_words << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgd29yZF90b19ib29sKHN0cmluZyB3b3JkLCBib29sIGxldHRlcnNbXSkgewogICAgZm9yIChjaGFyIGMgOiB3b3JkKSB7CiAgICAgICAgaWYgKGlzYWxwaGEoYykpIHsKICAgICAgICAgICAgbGV0dGVyc1t0b2xvd2VyKGMpIC0gJ2EnXSA9IHRydWU7CiAgICAgICAgfQogICAgfQp9CgppbnQgY291bnRfbGV0dGVycyhib29sIGxldHRlcnNbXSkgewogICAgaW50IGNvdW50ID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjY7IGkrKykgewogICAgICAgIGlmIChsZXR0ZXJzW2ldKSB7CiAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGNvdW50Owp9CgppbnQgbWFpbigpIHsKICAgLy8gZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgIC8vIGZyZW9wZW4oIm91dHB1dC50eHQiLCAidyIsIHN0ZG91dCk7CiAgICBib29sIG1heF9sZXR0ZXJzWzI2XSA9IHswfTsKICAgIGludCBtYXhfY291bnQgPSAwOwogICAgc3RyaW5nIG1heF93b3JkcyA9ICIiOwogICAgc3RyaW5nIGxpbmU7CiAgICBpZiAobGluZSA9PSAiIikgewogICAgICAgIGNvdXQgPDwgIk5VTExcbiI7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICB3aGlsZSAoZ2V0bGluZShjaW4sIGxpbmUpKSB7CiAgICAgICAgaW50IHN0YXJ0ID0gMDsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBsaW5lLnNpemUoKTsgaSsrKSB7CiAgICAgICAgICAgIGlmIChpID09IGxpbmUuc2l6ZSgpIHx8IGlzcHVuY3QobGluZVtpXSkgfHwgaXNzcGFjZShsaW5lW2ldKSkgewogICAgICAgICAgICAgICAgc3RyaW5nIHdvcmQgPSBsaW5lLnN1YnN0cihzdGFydCwgaSAtIHN0YXJ0KTsKICAgICAgICAgICAgICAgIGJvb2wgbGV0dGVyc1syNl0gPSB7MH07CiAgICAgICAgICAgICAgICB3b3JkX3RvX2Jvb2wod29yZCwgbGV0dGVycyk7CiAgICAgICAgICAgICAgICBpbnQgY291bnQgPSBjb3VudF9sZXR0ZXJzKGxldHRlcnMpOwogICAgICAgICAgICAgICAgaWYgKGNvdW50ID4gbWF4X2NvdW50KSB7CiAgICAgICAgICAgICAgICAgICAgbWF4X2NvdW50ID0gY291bnQ7CiAgICAgICAgICAgICAgICAgICAgbWF4X3dvcmRzID0gd29yZDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNvdW50ID09IG1heF9jb3VudCkgewogICAgICAgICAgICAgICAgICAgIG1heF93b3JkcyArPSAiICIgKyB3b3JkOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgc3RhcnQgPSBpICsgMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGlmIChtYXhfY291bnQgPT0gMCkgewogICAgICAgIGNvdXQgPDwgIi0xXG4iOwogICAgfQogICAgIAogICAgZWxzZSB7CiAgICAgICAgY291dCA8PCBtYXhfd29yZHMgPDwgIlxuIjsKICAgIH0KICAgIHJldHVybiAwOwp9CgoKCgoKCg==