#include <bits/stdc++.h>
using namespace std;
const int maxN = 3333;
bool dp[maxN][maxN];
string s;
int F[maxN], p[maxN];
bool f(int l, int r) {
  for (int i = l; i <= r; ++i) {
    if (s[i] == 'e' || s[i] == 'o' || s[i] == 'i' || s[i] == 'a' ||
        s[i] == 'u') {
      return false;
    }
  }
  if (s[l] == s[l + 1] && s[r] == s[r - 1]) return false;
  return true;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin >> s;
  int n = s.size();
  for (int i = 0; i < n; ++i) {
    dp[i][i] = true;
    if (i + 1 < n) dp[i][i + 1] = true;
    for (int j = i + 2; j < n; ++j) {
      if (dp[i][j - 1] == false) {
        dp[i][j] = false;
        continue;
      }
      if (f(j - 2, j)) {
        dp[i][j] = false;
        continue;
      }
      dp[i][j] = true;
    }
  }
  for (int i = 0; i <= n; ++i) {
    F[i] = n + 10;
  }
  for (int i = 0; i < n; ++i) {
    if (dp[0][i]) {
      F[i] = 1;
      p[i] = -1;
    }
  }
  for (int i = 0; i + 1 < n; ++i) {
    for (int j = i + 1; j < n; ++j) {
      if (F[j] > F[i] + 1 && dp[i + 1][j]) {
        F[j] = F[i] + 1;
        p[j] = i;
      }
    }
  }
  vector<int> ends;
  --n;
  while (n >= 0) {
    ends.push_back(n);
    n = p[n];
  }
  reverse(ends.begin(), ends.end());
  int j = 0;
  for (int i = 0; i < ends.size(); ++i) {
    while (j <= ends[i]) {
      cout << s[j];
      ++j;
    }
    if (i + 1 != ends.size()) cout << " ";
  }
  cout << endl;
  return 0;
}
