#include <bits/stdc++.h>
using namespace std;
char cad[400006];
int pu[400006], last, len;
bool buscar(int &pos) {
  int j;
  while (cad[pos] != '.') printf("%c", cad[pos++]);
  printf("%c", cad[pos]);
  int c, r = pu[pos] - pos - 1;
  if (r > 8)
    c = r - 8;
  else if (pu[pos] == len - 1)
    c = len - pos - 1;
  else
    c = 1;
  j = 0;
  pos++;
  while (j < c) {
    printf("%c", cad[pos++]);
    j++;
  }
}
int main() {
  scanf("%s", cad);
  len = strlen(cad);
  last = 0;
  bool no = 1;
  int i = 0;
  if (cad[0] == '.' || cad[len - 1] == '.') no = 0;
  while (cad[i] != '.' && i < 8) i++;
  if (cad[i] != '.')
    no = 0;
  else
    pu[0] = i, last = i, i++;
  for (; i < len && no; i++) {
    if (cad[i] == '.') {
      if (i - last - 1 > 11 || i - last - 1 < 2) no = 0;
      pu[last] = i;
      last = i;
    }
  }
  if (len - last - 1 > 3)
    no = 0;
  else
    pu[last] = len - 1;
  if (no) {
    printf("YES\n");
    i = 0;
    while (i < len) {
      buscar(i);
      printf("\n");
    }
  } else {
    printf("NO\n");
  }
  return 0;
}
