#include <bits/stdc++.h>
using namespace std;
char s[450000];
int main() {
  scanf("%s", &s);
  vector<string> list;
  char cur, last = '!';
  string word = "";
  int len = strlen(s);
  for (int i = 0; i < len; i++) {
    cur = s[i];
    if (last == '!') {
      if (cur != '.') {
        word += cur;
      } else {
        printf("NO");
        return 0;
      }
    } else {
      if (cur == '.') {
        if (last != '.') {
          if (((word.length() > 11))) {
            printf("NO");
            return 0;
          } else {
            list.push_back(word);
            word = "";
          }
        } else {
          printf("NO");
          return 0;
        }
      } else {
        word += cur;
      }
    }
    last = cur;
  }
  if (last == '.') {
    printf("NO");
    return 0;
  }
  if (word != "") {
    if (word.length() < 4) {
      list.push_back(word);
    } else {
      printf("NO");
      return 0;
    }
  }
  if (list.size() == 2) {
    if (!(list[0].length() > 0 && list[0].length() < 9 &&
          list[1].length() > 0 && list[1].length() < 4)) {
      printf("NO");
      return 0;
    }
  } else {
    if (list.size() == 1) {
      printf("NO");
      return 0;
    }
  }
  for (int i = 1; i < list.size() - 1; i++) {
    if (list[i].length() == 1) {
      printf("NO");
      return 0;
    }
  }
  len = list.size();
  bool was = false;
  for (int i = 0; i < len; i++) {
    if (!was) {
      was = true;
      if (list[i].length() > 8) {
        printf("NO");
        return 0;
      } else {
        cout << "YES\n";
        cout << list[i] << ".";
      }
    } else {
      if (i != len - 1) {
        if (list[i].length() > 3) {
          cout << list[i].substr(0, 3) << "\n";
          cout << list[i].substr(3, list[i].length() - 3) << ".";
        } else {
          cout << list[i].substr(0, 1) << "\n";
          cout << list[i].substr(1, list[i].length() - 1) << ".";
        }
      } else {
        cout << list[i] << "\n";
      }
    }
  }
  return 0;
}
