#include <bits/stdc++.h>
using namespace std;
int counter = 0;
vector<int> v;
void sortSmall(int arr[], int sizee) {
  while (sizee--) {
    for (int i = 0; i < sizee; i++) {
      if (arr[i] > arr[i + 1]) {
        int temp = arr[i];
        arr[i] = arr[i + 1];
        arr[i + 1] = temp;
      }
    }
  }
}
int power(int num, int x) {
  int result = 1;
  for (int i = 0; i < x; i++) result *= num;
  return result;
}
int main() {
  bool can = true;
  ;
  string c;
  cin >> c;
  int counter1 = 0;
  bool bef = true;
  int last = 0;
  if (c.size() < 3 || c[0] == '.') {
    cout << "NO" << endl;
    return 0;
  }
  for (int i = 0; i < c.size(); i++) {
    if (bef) {
      if (c[i] != '.') {
        counter1++;
        if (counter1 > 8) {
          cout << "NO" << endl;
          return 0;
        }
      } else {
        if (counter1 > 8) {
          cout << "NO" << endl;
          return 0;
        } else {
          bef = false;
          last = i;
          counter1 = 0;
        }
      }
    } else {
      if (c[i] != '.')
        counter1++;
      else {
        if (counter1 > 11 || counter1 < 2) {
          cout << "NO" << endl;
          return 0;
        } else {
          counter1 = 0;
          last = i;
        }
      }
    }
  }
  for (int i = (last + 1); i < c.size(); i++) {
    counter++;
  }
  if (counter > 3) {
    cout << "NO" << endl;
    return 0;
  } else if (bef || last == (c.size() - 1) || last == 0) {
    cout << "NO" << endl;
    return 0;
  } else {
    cout << "YES" << endl;
    int index = 0;
    while (true) {
      if (index == last) {
        cout << '.';
        break;
      }
      if (c[index] != '.')
        cout << c[index];
      else {
        cout << c[index];
        index++;
        int chars = 0;
        int index2 = index;
        while (true) {
          if (c[index2] != '.')
            chars++;
          else
            break;
          index2++;
        }
        if (chars > 9) {
          cout << c[index];
          index++;
          cout << c[index];
          index++;
          cout << c[index];
        } else
          cout << c[index];
        cout << endl;
      }
      index++;
    }
  }
  for (int i = (last + 1); i < c.size(); i++) {
    cout << c[i];
  }
  cout << endl;
}
