#include <bits/stdc++.h>
using namespace std;
void debug_out() { cerr << endl; }
void clock_out() {
  cerr << "\nTime Elapsed : " << 1.0 * clock() / CLOCKS_PER_SEC << " s\n";
}
void fileio() {
  freopen("/home/dwai/Desktop/cp/input.txt", "r", stdin);
  freopen("/home/dwai/Desktop/cp/output.txt", "w", stdout);
  freopen("/home/dwai/Desktop/cp/debug.txt", "w", stderr);
}
template <typename Head, typename... Tail>
void debug_out(Head H, Tail... T) {
  cerr << " " << H;
  debug_out(T...);
}
int IT_MAX = 1 << 20;
const long long MOD = 1000000007;
const int INF = 0x3f3f3f3f;
const long long LL_INF = 0x3f3f3f3f3f3f3f3f;
const double PI = acos(-1);
const double ERR = 1e-10;
int main() {
  42;
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  srand(time(NULL));
  string s;
  cin >> s;
  vector<string> vs;
  string w = "";
  for (char c : s) {
    if (c != '.')
      w += c;
    else {
      vs.emplace_back(w);
      w = "";
    }
  }
  vs.emplace_back(w);
  long long l = vs.size();
  if (vs[0].length() < 1 || vs[0].length() > 8 || vs[l - 1].length() < 1 ||
      vs[l - 1].length() > 3 || l < 2)
    return cout << "NO", 0;
  string prev = vs[0];
  long long i;
  vector<string> ans;
  for (i = 1; i <= l - 2; i++) {
    long long x = vs[i].length();
    if (x > 11 || x < 2) return cout << "NO", 0;
    long long j;
    for (j = 1; j <= 3; j++) {
      if (x - j >= 1 && x - j <= 8) {
        string temp = prev + "." + vs[i].substr(0, j);
        prev = vs[i].substr(j, x - j);
        ans.emplace_back(temp);
        break;
      }
    }
  }
  ans.emplace_back(prev + "." + vs[l - 1]);
  cout << "YES\n";
  for (i = 0; i < ans.size(); i++) {
    cout << ans[i] << "\n";
  }
  return 0;
}
