#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
std::string common_vowels(std::vector<std::string> const& words) {
std::string vowels = "aeiou";
std::string::iterator last = std::end(vowels);
for (auto word : words) {
std::sort(std::begin(word), std::end(word));
last = std::set_intersection(
std::begin(vowels), last
, std::begin(word), std::end(word)
, std::begin(vowels));
}
return {std::begin(vowels), last};
}
int main() {
std::vector<std::string> const words = {"waiidwad", "afaiiwd", "esfiad", "sefasefgi", "siegsa"};
std::string const vowels = common_vowels(words);
std::cout << vowels << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgoKCnN0ZDo6c3RyaW5nIGNvbW1vbl92b3dlbHMoc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IGNvbnN0JiB3b3JkcykgewogICBzdGQ6OnN0cmluZyB2b3dlbHMgPSAiYWVpb3UiOwogICBzdGQ6OnN0cmluZzo6aXRlcmF0b3IgbGFzdCA9IHN0ZDo6ZW5kKHZvd2Vscyk7CiAgIAogICBmb3IgKGF1dG8gd29yZCA6IHdvcmRzKSB7CiAgICAgIHN0ZDo6c29ydChzdGQ6OmJlZ2luKHdvcmQpLCBzdGQ6OmVuZCh3b3JkKSk7CiAgICAgIGxhc3QgPSBzdGQ6OnNldF9pbnRlcnNlY3Rpb24oCiAgICAgIAkgICAgc3RkOjpiZWdpbih2b3dlbHMpLCBsYXN0CiAgICAgIAkgICwgc3RkOjpiZWdpbih3b3JkKSwgICBzdGQ6OmVuZCh3b3JkKQogICAgICAJICAsIHN0ZDo6YmVnaW4odm93ZWxzKSk7CiAgIH0KICAgCiAgIHJldHVybiB7c3RkOjpiZWdpbih2b3dlbHMpLCBsYXN0fTsKfQoKCmludCBtYWluKCkgewogICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gY29uc3Qgd29yZHMgPSB7IndhaWlkd2FkIiwgImFmYWlpd2QiLCAiZXNmaWFkIiwgInNlZmFzZWZnaSIsICJzaWVnc2EifTsKICAgCiAgIHN0ZDo6c3RyaW5nIGNvbnN0IHZvd2VscyA9IGNvbW1vbl92b3dlbHMod29yZHMpOwogICAKICAgc3RkOjpjb3V0IDw8IHZvd2VscyA8PCBzdGQ6OmVuZGw7Cn0K