#include <bits/stdc++.h>
using namespace std;
const int MaxN = 500500;
int sz = 0;
struct node {
int next[27];
int HowManyStringsEndsAtThisVertex;
node () {
memset (next, 255, sizeof next);
}
} t[MaxN];
void insert (string &s) {
int v = 0;
for (int i = 0; i < s.size(); ++i) {
int c = s[i] - 'a';
if (t[v].next[c] == -1)
t[v].next[c] = ++sz;
v = t[v].next[c];
}
t[v].HowManyStringsEndsAtThisVertex++;
}
bool search (string tmp) {
int v = 0;
for (int i = 0; i < tmp.size(); ++i) {
int c = tmp[i] - 'a';
if (t[v].next[c] == -1)
return false;
v = t[v].next[c];
}
return t[v].HowManyStringsEndsAtThisVertex > 0;
}
int main () {
string keys[] = {"hi", "hello", "you", "ekta", "me"};
string output[] = {"NO", "YES"};
for (int i = 0; i < 5; ++i)
insert (keys[i]);
cout << output[search ("my")] << endl;
cout << output[search ("me")] << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE1heE4gPSA1MDA1MDA7CmludCBzeiA9IDA7CgpzdHJ1Y3Qgbm9kZSB7CglpbnQgbmV4dFsyN107CglpbnQgSG93TWFueVN0cmluZ3NFbmRzQXRUaGlzVmVydGV4OwoJbm9kZSAoKSB7CgkJbWVtc2V0IChuZXh0LCAyNTUsIHNpemVvZiBuZXh0KTsKCX0KfSB0W01heE5dOwoKdm9pZCBpbnNlcnQgKHN0cmluZyAmcykgewoJaW50IHYgPSAwOwoKCWZvciAoaW50IGkgPSAwOyBpIDwgcy5zaXplKCk7ICsraSkgewoJICAgIGludCBjID0gc1tpXSAtICdhJzsKCQlpZiAodFt2XS5uZXh0W2NdID09IC0xKQoJCQl0W3ZdLm5leHRbY10gPSArK3N6OwoJCXYgPSB0W3ZdLm5leHRbY107Cgl9Cgl0W3ZdLkhvd01hbnlTdHJpbmdzRW5kc0F0VGhpc1ZlcnRleCsrOwp9Cgpib29sIHNlYXJjaCAoc3RyaW5nIHRtcCkgewoJaW50IHYgPSAwOwoJCglmb3IgKGludCBpID0gMDsgaSA8IHRtcC5zaXplKCk7ICsraSkgewoJCWludCBjID0gdG1wW2ldIC0gJ2EnOwoJCWlmICh0W3ZdLm5leHRbY10gPT0gLTEpCgkJCXJldHVybiBmYWxzZTsKCQl2ID0gdFt2XS5uZXh0W2NdOwoJfQoJcmV0dXJuIHRbdl0uSG93TWFueVN0cmluZ3NFbmRzQXRUaGlzVmVydGV4ID4gMDsKfQoKaW50IG1haW4gKCkgewoJc3RyaW5nIGtleXNbXSA9IHsiaGkiLCAiaGVsbG8iLCAieW91IiwgImVrdGEiLCAibWUifTsKCXN0cmluZyBvdXRwdXRbXSA9IHsiTk8iLCAiWUVTIn07CgoJZm9yIChpbnQgaSA9IDA7IGkgPCA1OyArK2kpCgkJaW5zZXJ0IChrZXlzW2ldKTsKCgljb3V0IDw8IG91dHB1dFtzZWFyY2ggKCJteSIpXSA8PCBlbmRsOwoJY291dCA8PCBvdXRwdXRbc2VhcmNoICgibWUiKV0gPDwgZW5kbDsKCQoJcmV0dXJuIDA7Cn0K