#include <bits/stdc++.h>
using namespace std;
int32_t main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ;
  string str;
  cin >> str;
  vector<string> v;
  long long n = str.size();
  string temp;
  long long cur = 0;
  for (long long i = 0; i < n; i++) {
    if (str[i] == '.') {
      v.push_back(temp);
      temp = "";
    } else
      temp.push_back(str[i]);
  }
  v.push_back(temp);
  bool ok = 1;
  for (long long i = 0; i < v.size(); i++) {
    if (i == 0) {
      if (v[i].size() > 8 || v[i].size() == 0) {
        ok = 0;
        break;
      }
    } else if (i == v.size() - 1) {
      if (v[i].size() > 3 || v[i].size() == 0) {
        ok = 0;
        break;
      }
    } else {
      if (v[i].size() > 11 || v[i].size() <= 1) {
        ok = 0;
        break;
      }
    }
  }
  if (!ok) {
    cout << "NO\n";
  } else {
    vector<string> ans;
    for (long long i = 0; i < v.size(); i++) {
      if (i == 0 || i == v.size() - 1) {
        ans.push_back(v[i]);
      } else {
        long long a;
        if (v[i].size() <= 8) {
          a = 1;
        } else if (v[i].size() <= 10) {
          a = 2;
        } else if (v[i].size() <= 11)
          a = 3;
        string h1 = "", h2 = "";
        for (long long j = 0; j < v[i].size(); j++) {
          if (a) {
            h1.push_back(v[i][j]);
            a--;
          } else
            h2.push_back(v[i][j]);
        }
        ans.push_back(h1);
        ans.push_back(h2);
      }
    }
    if (ans.size() % 2) {
      cout << "NO\n";
      return 0;
    }
    cout << "YES\n";
    for (long long i = 0; i < ans.size() - 1; i += 2) {
      cout << ans[i] << '.' << ans[i + 1] << endl;
    }
  }
  return 0;
}
