#include <bits/stdc++.h>
using namespace std;
char str[5000000];
int main() {
  scanf("%s", str + 1);
  int len = strlen(str + 1);
  int x;
  int flag = 0;
  for (int i = 1; i <= len; i++)
    if (str[i] == '.') flag = 1;
  if (!flag) {
    puts("NO");
    return 0;
  }
  for (int i = 1; i < len; i++)
    if (str[i] == '.' && str[i + 1] == '.') {
      puts("NO");
      return 0;
    };
  for (x = 1; x <= len; x++)
    if (str[x] == '.') break;
  if (x - 1 <= 0 || x - 1 > 8) {
    puts("NO");
    return 0;
  };
  flag = 0;
  for (x = x + 1; x <= len; x++) {
    int t = x;
    for (x = x + 1; str[x] != '.' && x <= len; x++)
      ;
    if (x == len + 1) break;
    if (x - t > 11 || x - t < 2) {
      puts("NO");
      return 0;
    }
  }
  for (x = len; str[x] != '.'; x--)
    ;
  if (len - x <= 0 || len - x > 3) {
    puts("NO");
    return 0;
  }
  for (x = 1; str[x] != '.' && x <= len; x++)
    ;
  puts("YES");
  for (int i = 1; i <= x; i++) printf("%c", str[i]);
  flag = 1;
  for (x = x + 1; x <= len;) {
    int t = x;
    for (x = x + 1; str[x] != '.' && x <= len; x++)
      ;
    if (x == len + 1) break;
    x--;
    if (flag == 1) {
      int tlen = x - t + 1;
      if (tlen > 3) {
        for (int i = 1; i <= 3; i++) printf("%c", str[t + i - 1]);
        x = t + 3;
        flag = 0;
      } else {
        printf("%c", str[t]);
        x = t + 1;
        flag = 0;
      }
      puts("");
    } else {
      for (int i = t; i <= x; i++) printf("%c", str[i]);
      printf("%c", str[x + 1]);
      x += 2;
      flag = 1;
    }
  }
  for (x = len; str[x] != '.'; x--)
    ;
  x++;
  for (int i = x; i <= len; i++) printf("%c", str[i]);
  puts("");
  return 0;
}
