#include<bits/stdc++.h>
using namespace std;
class Kamus{
map<string, set<string>> k;
public:
void tambah(string s, vector<string> v){
for(string t : v){
k[s].insert(t);
k[t].insert(s);
}
}
vector<string> ambilSinonim(string s){
vector<string> arr;
for(string t : k[s]) arr.push_back(t);
return arr;
}
};
int main(){
Kamus kamus;
kamus.tambah("big", {"large", "great"});
kamus.tambah("big", {"huge", "fat"});
kamus.tambah("huge", {"enormous", "gigantic"});
for(auto s : kamus.ambilSinonim("big")){
cout << s << ' ';
}
cout << "\n\n";
for(auto s : kamus.ambilSinonim("huge")){
cout << s << ' ';
}
cout << "\n\n";
for(auto s : kamus.ambilSinonim("gigantic")){
cout << s << ' ';
}
cout << "\n\n";
if(kamus.ambilSinonim("colossal").empty()){
cout << "NULL" << '\n';
}
for(auto s : kamus.ambilSinonim("colossal")){
cout << s << ' ';
}
cout << "\n\n";
}
/*
*/
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEthbXVzewogIG1hcDxzdHJpbmcsIHNldDxzdHJpbmc+PiBrOwoKcHVibGljOgogIHZvaWQgdGFtYmFoKHN0cmluZyBzLCB2ZWN0b3I8c3RyaW5nPiB2KXsKICAgIGZvcihzdHJpbmcgdCA6IHYpewogICAgICBrW3NdLmluc2VydCh0KTsKICAgICAga1t0XS5pbnNlcnQocyk7CiAgICB9IAogIH0KCiAgdmVjdG9yPHN0cmluZz4gYW1iaWxTaW5vbmltKHN0cmluZyBzKXsKICAgIHZlY3RvcjxzdHJpbmc+IGFycjsKICAgIGZvcihzdHJpbmcgdCA6IGtbc10pIGFyci5wdXNoX2JhY2sodCk7CgogICAgcmV0dXJuIGFycjsKICB9Cn07CgppbnQgbWFpbigpewogIEthbXVzIGthbXVzOwogIGthbXVzLnRhbWJhaCgiYmlnIiwgeyJsYXJnZSIsICJncmVhdCJ9KTsKICBrYW11cy50YW1iYWgoImJpZyIsIHsiaHVnZSIsICJmYXQifSk7CiAga2FtdXMudGFtYmFoKCJodWdlIiwgeyJlbm9ybW91cyIsICJnaWdhbnRpYyJ9KTsKCiAgZm9yKGF1dG8gcyA6IGthbXVzLmFtYmlsU2lub25pbSgiYmlnIikpewogICAgY291dCA8PCBzIDw8ICcgJzsgCiAgfQogIGNvdXQgPDwgIlxuXG4iOwoKICBmb3IoYXV0byBzIDoga2FtdXMuYW1iaWxTaW5vbmltKCJodWdlIikpewogICAgY291dCA8PCBzIDw8ICcgJzsgCiAgfQogIGNvdXQgPDwgIlxuXG4iOwoKICBmb3IoYXV0byBzIDoga2FtdXMuYW1iaWxTaW5vbmltKCJnaWdhbnRpYyIpKXsKICAgIGNvdXQgPDwgcyA8PCAnICc7IAogIH0KICBjb3V0IDw8ICJcblxuIjsKCiAgaWYoa2FtdXMuYW1iaWxTaW5vbmltKCJjb2xvc3NhbCIpLmVtcHR5KCkpewogICAgY291dCA8PCAiTlVMTCIgPDwgJ1xuJzsKICB9CiAgZm9yKGF1dG8gcyA6IGthbXVzLmFtYmlsU2lub25pbSgiY29sb3NzYWwiKSl7CiAgICBjb3V0IDw8IHMgPDwgJyAnOyAKICB9CiAgY291dCA8PCAiXG5cbiI7Cgp9CgovKgoKCiov