#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const double PI = acos(-1.0);
const int N = 3333;
string s;
int dp[300][10][2][N];
bool vogal(char c) {
  if (c == 'a') return true;
  if (c == 'e') return true;
  if (c == 'i') return true;
  if (c == 'o') return true;
  if (c == 'u') return true;
  if (c == '@') return true;
  return false;
}
int go(char ant, int ct, bool diff, int at) {
  if (at >= (int)s.size()) return 0;
  ct = min(ct, 5);
  int &r = dp[(int)ant][ct][diff][at];
  if (r != -1) return r;
  r = go(s[at], !vogal(s[at]), 0, at + 1) + 1;
  diff = diff or ant != s[at];
  if (vogal(s[at]) or vogal(ant)) diff = false;
  if (vogal(s[at]))
    ct = 0;
  else
    ct++;
  if (ct <= 2) {
    r = min(r, go(s[at], ct, diff, at + 1));
  } else if (!diff) {
    r = min(r, go(s[at], ct, diff, at + 1));
  }
  return r;
}
void imp(char ant, int ct, bool diff, int at) {
  if (at >= (int)s.size()) return;
  int L = INF, R = INF;
  L = go(s[at], !vogal(s[at]), 0, at + 1) + 1;
  diff = diff or ant != s[at];
  if (vogal(s[at]) or vogal(ant)) diff = false;
  if (vogal(s[at]))
    ct = 0;
  else
    ct++;
  if (ct <= 2) {
    R = go(s[at], ct, diff, at + 1);
  } else if (!diff) {
    R = go(s[at], ct, diff, at + 1);
  }
  if (L < R) {
    cout << " " << s[at];
    imp(s[at], !vogal(s[at]), 0, at + 1);
  } else {
    cout << s[at];
    imp(s[at], ct, diff, at + 1);
  }
}
int main(void) {
  ios_base::sync_with_stdio(false);
  memset(dp, -1, sizeof dp);
  cin >> s;
  go('@', 0, 0, 0);
  imp('@', 0, 0, 0);
  cout << endl;
  return 0;
}
