#include <bits/stdc++.h>
using namespace std;
char s[110];
int jud1(int l, int r) {
  if (r - l + 1 > 16 || r < l) return 0;
  int i;
  for (i = l; i <= r; i++)
    if (s[i] - '_' && (s[i] < '0' || s[i] > '9') &&
        (s[i] < 'a' || s[i] > 'z') && (s[i] < 'A' || s[i] > 'Z'))
      return 0;
  return 1;
}
int jud2(int l, int r) {
  if (r - l + 1 > 32 || r < l) return 0;
  int i;
  for (i = l; i <= r; i++)
    if (s[i] == '.') {
      if (!jud1(l, i - 1)) return 0;
      l = i + 1;
    }
  return jud1(l, r);
}
int jud() {
  int len = strlen(s);
  int i, j, cnt = 0, pos, c1 = 0, p1;
  for (i = 0; i < len; i++)
    if (s[i] == '@')
      cnt++, pos = i;
    else if (s[i] == '/')
      c1++, p1 = i;
  if (cnt - 1) return 0;
  if (jud1(0, pos - 1) == 0) return 0;
  if (c1 == 0) return jud2(pos + 1, len - 1);
  if (c1 == 1) return jud2(pos + 1, p1 - 1) && jud1(p1 + 1, len - 1);
  return 0;
}
int main() {
  scanf("%s", s);
  if (jud())
    puts("YES");
  else
    puts("NO");
}
