#include <bits/stdc++.h>
using namespace std;
const int maxn = 400005;
string s;
bool v[maxn];
int n, i, j, k, len, trace[maxn], b[maxn];
int main() {
  cin >> s;
  s = " " + s;
  memset(v, false, sizeof(v));
  n = s.length() - 1;
  v[0] = true;
  for (i = 1; i <= n; i++)
    if (s[i] != '.') {
      len = 1;
      while (len <= 3 && i - len > 0 && s[i - len] != '.') len++;
      if (len <= 3 && i - len > 0 && s[i - len] == '.') {
        j = i - len;
        len = 1;
        while (len <= 8 && j - len > 0 && s[j - len] != '.' &&
               v[j - len - 1] == false)
          len++;
        if (len <= 8 && j - len > 0 && s[j - len] != '.' &&
            v[j - len - 1] == true) {
          v[i] = true;
          trace[i] = j - len - 1;
        }
      }
    }
  if (v[n] == false)
    cout << "NO";
  else {
    cout << "YES" << endl;
    b[1] = n;
    j = 1;
    i = n;
    while (b[j] > 0) {
      j++;
      b[j] = trace[b[j - 1]];
    }
    for (i = j - 1; i >= 1; i--) {
      for (k = b[i + 1] + 1; k <= b[i]; k++) cout << s[k];
      cout << endl;
    }
  }
}
