#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<algorithm>
#include<queue>
#include<fstream>
#include<bitset>
using namespace std;
bool test(string s)
{
if (s.size() == 0)
return false;
for (int i = 0; i < s.size(); i++)
{
if (s[i] >= '0' && s[i] <= '9' || s[i] >= 'a' && s[i] <= 'z')
;
else
return false;
}
return true;
}
int main()
{
string s;
cin >> s;
string str = "";
int i;
for (i = 0; i < s.size(); i++)
{
if (s[i] != '@')
str += s[i];
else
break;
}
bool isok = test(str);
str = "";
i++;
for (i; i < s.size(); i++)
{
if (s[i] != '.')
str += s[i];
else
break;
}
isok = isok && test(str);
str = "";
i++;
for (i; i < s.size(); i++)
str += s[i];
isok = isok && test(str);
cout << (isok ? "YES" : "NO") << endl;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZz4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPGFsZ29yaXRobT4KI2luY2x1ZGU8cXVldWU+CiNpbmNsdWRlPGZzdHJlYW0+CiNpbmNsdWRlPGJpdHNldD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApib29sIHRlc3Qoc3RyaW5nIHMpCnsKCWlmIChzLnNpemUoKSA9PSAwKQoJCXJldHVybiBmYWxzZTsKCWZvciAoaW50IGkgPSAwOyBpIDwgcy5zaXplKCk7IGkrKykKCXsKCQlpZiAoc1tpXSA+PSAnMCcgJiYgc1tpXSA8PSAnOScgfHwgc1tpXSA+PSAnYScgJiYgc1tpXSA8PSAneicpCgkJCTsKCQllbHNlCgkJCXJldHVybiBmYWxzZTsKCX0KCXJldHVybiB0cnVlOwp9CiAKaW50IG1haW4oKQp7CglzdHJpbmcgczsKCWNpbiA+PiBzOwogCglzdHJpbmcgc3RyID0gIiI7CglpbnQgaTsKCWZvciAoaSA9IDA7IGkgPCBzLnNpemUoKTsgaSsrKQoJewoJCWlmIChzW2ldICE9ICdAJykKCQkJc3RyICs9IHNbaV07CgkJZWxzZQoJCQlicmVhazsKCX0KIAoJYm9vbCBpc29rID0gdGVzdChzdHIpOwoJc3RyID0gIiI7CglpKys7Cglmb3IgKGk7IGkgPCBzLnNpemUoKTsgaSsrKQoJewoJCWlmIChzW2ldICE9ICcuJykKCQkJc3RyICs9IHNbaV07CgkJZWxzZQoJCQlicmVhazsKCX0KIAoJaXNvayA9IGlzb2sgJiYgdGVzdChzdHIpOwoJc3RyID0gIiI7CglpKys7Cglmb3IgKGk7IGkgPCBzLnNpemUoKTsgaSsrKQoJCXN0ciArPSBzW2ldOwogCglpc29rID0gaXNvayAmJiB0ZXN0KHN0cik7CiAKCWNvdXQgPDwgKGlzb2sgPyAiWUVTIiA6ICJOTyIpIDw8IGVuZGw7CiAKIAoJcmV0dXJuIDA7Cn0=