#include <bits/stdc++.h>
using namespace std;
int main() {
  string s;
  cin >> s;
  vector<int> v;
  int count = 0;
  for (int i = 0; i < s.length(); i++) {
    if (s[i] == '.') {
      v.push_back(count);
      count = 0;
    } else
      count++;
  }
  if (v.size() == 0) {
    cout << "NO";
  } else {
    v.push_back(count);
    int f = 0;
    vector<pair<int, int>> p;
    for (int i = 0; i < v.size(); i++) {
      if (i == 0) {
        if (v[i] >= 1 && v[i] <= 8) {
        } else {
          f = 1;
          break;
        }
      } else if (i == v.size() - 1) {
        if (v[i] >= 1 && v[i] <= 3) {
        } else {
          f = 1;
          break;
        }
      } else {
        if (v[i] >= 2 && v[i] <= 11) {
          if (v[i] >= 2 && v[i] <= 9) {
            p.push_back(make_pair(1, v[i] - 1));
          } else if (v[i] == 10)
            p.push_back(make_pair(2, 8));
          else
            p.push_back(make_pair(3, 8));
        } else {
          f = 1;
          break;
        }
      }
    }
    if (f)
      cout << "NO";
    else {
      cout << "YES" << endl;
      int len = 0;
      string k = s.substr(0, v[0] + 1);
      cout << k;
      int m = 0;
      int j = 0;
      len += v[0] + 1;
      while (j < p.size()) {
        if (m % 2 == 0) {
          k = s.substr(len, p[j].first);
          cout << k << endl;
          len += p[j].first;
        } else {
          k = s.substr(len, p[j].second + 1);
          cout << k;
          len += p[j].second + 1;
          j++;
        }
        m++;
      }
      k = s.substr(len, v[v.size() - 1]);
      cout << k;
    }
  }
  return 0;
}
