#5 永远过不了
#include <bits/stdc++.h>
using namespace std;
bool check1(string s){
if(s.size()>16||s==""){
return 0;
}
for(int i=0;i<s.size();i++){
if(s[i]=='.'){
return 0;
}
if(!((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z')||(s[i]>='0'&s[i]<='9')||(s[i]=='_'))){
return 0;
}
}
return 1;
}
bool check3(string s){
for(int i=0;i<s.size();i++){
if(s[i]=='.'){
return 0;
}
if(s[i]!='/')
if(!((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z')||(s[i]>='0'&s[i]<='9')||(s[i]=='_'))){
return 0;
}
}
return 1;
}
bool check2(string s){
if(s[0]=='.'){
return 0;
}
if(s.size()==0){
return 0;
}
if(s.size()>32){
return 0;
}
for(int i=0;i<s.size();i++){
if(s[i]=='.'&&s[i+1]=='.'){
return 0;
}
if(s[i]!='.')
if(!((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z')||(s[i]>='0'&s[i]<='9')||(s[i]=='_'))){
return 0;
}
}
}
string a;
string a1;
bool flag;
int main(){
getline(cin,a);
if(a[a.size()-1]=='/'){
cout<<"NO";
return 0;
}
for(int i=0;i<a.size();i++){
if(a[i]=='@'){
if(check1(a1)==0){
cout<<"NO";
return 0;
}
a1="";
}
else if(a[i]=='/'&&flag==0){
flag=1;
if(check2(a1)==0){
cout<<"NO";
return 0;
}
a1="";
}
else
a1+=a[i];
}
if(flag==0){
cout<<"YES";
return 0;
}
if(flag==1&&a1==""){
cout<<"NO";
return 0;
}
if(check3(a1)==0){
cout<<"NO";
return 0;
}
cout<<"YES";
return 0;
}
求神犇技术支援