#include <bits/stdc++.h>
using namespace std;
int i, j;
int main() {
  ios::sync_with_stdio(false);
  cin.tie();
  string s;
  getline(cin, s);
  string ans;
  for (i = 0; i < s.size(); i++) {
    if (s[i] == ',' && s[i + 1] == '.' && s[i + 2] == '.' && s[i + 3] == '.') {
      ans += s[i];
      ans += ' ';
      ans += s[i + 1];
      ans += s[i + 2];
      ans += s[i + 3];
      i += 3;
    } else if (s[i] == ',' && s[i + 1] != ' ') {
      ans += s[i];
      ans += ' ';
    } else if (s[i] == ' ' && s[i + 1] == ' ') {
      goto pass;
    } else if (s[i] == ' ' && s[i + 1] != ' ') {
      ans += ' ';
    } else if (s[i] == s[i + 1] && s[i] == s[i + 2] && s[i] == '.' &&
               s[i - 1] != ' ') {
      ans += ' ';
      ans += s[i];
      ans += s[i + 1];
      ans += s[i + 2];
      i += 2;
    } else if (s[i] == ' ' && (s[i - 1] != ',' || s[i - 1] != '.'))
      goto pass;
    else if (s[i] == ',') {
      ans += ',';
      ans += ' ';
    } else {
      ans += s[i];
    }
  pass:;
  }
  if (ans[0] == ' ') ans.erase(0, 1);
  while (ans[ans.size() - 1] == ' ') ans.erase(ans.size() - 1, 1);
  for (i = 0; i < ans.size(); i++) {
    if (ans[i] == ' ' && ans[i + 1] == ' ') ans.erase(i + 1, 1);
    if (ans[i] == ' ' && ans[i - 1] != ',' && ans[i + 1] == ',')
      ans.erase(i, 1);
    if (ans[i] == ' ' && ans[i - 1] == '.' && ans[i - 2] == '.' &&
        ans[i - 3] == '.' && isdigit(ans[i + 1]))
      ans.erase(i, 1);
  }
  cout << ans << endl;
  return 0;
}
