#include <bits/stdc++.h>
using namespace std;
string s, cnt = "";
vector<string> ans;
vector<int> dotpos;
int main() {
  cin >> s;
  bool flag = false;
  int afterdot = 0, beforedot = 0, it = 0;
  for (int i = 0; i < s.size(); i++) {
    cnt += s[i];
    if (s[i] == '.') {
      if (!flag)
        flag = true;
      else {
        cnt.erase(cnt.size() - 1, 1);
        cnt.erase(cnt.size() - 1, 1);
        ans.push_back(cnt);
        cnt = s[i - 1];
        cnt += s[i];
        beforedot = 1;
        afterdot = 0;
      }
    }
    if (flag)
      afterdot++;
    else
      beforedot++;
    if (afterdot == 4) {
      if (s[i + 1] == '.') {
        cnt.erase(cnt.size() - 1, 1);
        ans.push_back(cnt);
        cnt = s[i];
        beforedot = afterdot = 0;
        flag = false;
      } else {
        ans.push_back(cnt);
        cnt = "";
        beforedot = afterdot = 0;
        flag = false;
      }
    }
  }
  if (!cnt.empty()) ans.push_back(cnt);
  for (int i = 0; i < ans.size(); i++) {
    int before = 0, after = 0;
    bool f = false;
    for (int j = 0; j < ans[i].size(); j++) {
      if (!f)
        before++;
      else
        after++;
      if (ans[i][j] == '.') f = true;
    }
    if (!f || before == 1 || after == 0 || before > 9 || after > 3) {
      printf("NO\n");
      return 0;
    }
  }
  printf("YES\n");
  for (int i = 0; i < ans.size(); i++) cout << ans[i] << endl;
  return 0;
}
