#include <bits/stdc++.h>
using namespace std;
int Checkerror(char Ch) {
  if (Ch == '_') return 1;
  if (Ch < '0' || Ch > 'z') return 0;
  if (Ch < 'A' && Ch > '9') return 0;
  if (Ch < 'a' && Ch > 'Z') return 0;
  return 1;
}
int main() {
  string St;
  getline(cin, St);
  long long i = 0;
  int Check = 1;
  if (St[i] == '@') Check = 0;
  if (Check == 1)
    while (St[i] != '@') {
      if (i == 16) {
        Check = 0;
      }
      Check = Checkerror(St[i]);
      if (Check == 0) break;
      i++;
    }
  long long Cnt = 0, Cnt2 = 0;
  ;
  i++;
  if (i == St.size()) Check = 0;
  if (i == '/') Check = 0;
  if (Check == 1)
    while (St[i] != '/') {
      Cnt2++;
      if (St[i] == '.') {
        if (St[i - 1] == '.' || St[i - 1] == '@') Check = 0;
        Cnt = 0;
      } else {
        Check = Checkerror(St[i]);
        Cnt++;
      }
      if (Cnt > 16 || Cnt2 > 32) Check = 0;
      if (Check == 0) break;
      i++;
      if (i == St.size()) {
        if (Cnt == 0) Check = 0;
        break;
      }
    }
  Cnt = 0;
  Cnt2 = 0;
  if (St[i - 1] == '.') Check = 0;
  if (Check == 1)
    while (i < St.size()) {
      i++;
      Cnt2++;
      if (St[i] == '/') {
        if (St[i - 1] == '/' || St[i - 1] == '.') Check = 0;
        Cnt2 = 0;
      } else
        Check = Checkerror(St[i]);
      if (Cnt2 > 16) Check = 0;
      if (Check == 0) break;
      if (i + 1 == St.size()) {
        if (Cnt2 == 0) Check = 0;
        break;
      }
    }
  if (Check == 1)
    cout << "YES";
  else
    cout << "NO";
}
