#include <bits/stdc++.h>
using namespace std;
string str;
queue<int> qq;
int main() {
  cin >> str;
  int i, j;
  int len = str.length();
  int cnt = 0;
  bool ok = 1;
  int tag;
  for (i = len - 1; i >= 0; i--) {
    if (str[i] == '.') {
      tag = i;
      break;
    }
    cnt++;
  }
  if (cnt > 3 || cnt == 0 || i == -1) ok = 0;
  cnt = 0;
  bool flag = 0;
  for (i = 0; i < len && ok; i++) {
    if (str[i] == '.') {
      if (!flag) {
        if (cnt < 1 || cnt > 8) {
          ok = 0;
          break;
        }
      } else if (cnt > 11 || cnt <= 1) {
        ok = 0;
        break;
      }
      if (flag) {
        if (cnt <= 4) {
          qq.push(i - 1);
        } else {
          qq.push(i - cnt + 3);
        }
      }
      flag = 1;
      cnt = 0;
    } else
      cnt++;
  }
  if (!ok) {
    cout << "NO" << endl;
  } else {
    cout << "YES" << endl;
    int tt = qq.front();
    for (i = 0; i < str.length(); i++) {
      if (i == tt && i <= tag) {
        cout << endl;
        qq.pop();
        if (!qq.empty()) {
          tt = qq.front();
        }
      }
      cout << str[i];
    }
    cout << endl;
  }
  return 0;
}
