#include <bits/stdc++.h>
inline bool isv(char c) {
  return (c == 'a') || (c == 'e') || (c == 'i') || (c == 'o') || (c == 'u');
}
using namespace std;
const int MAXN = 3010;
bool typo[MAXN][MAXN];
char str[MAXN];
int ctr[27];
int dp[MAXN], from[MAXN], ans[MAXN], N;
int main() {
  int i, k, t, Nv = 0;
  scanf("%s", str + 1);
  N = strlen(str + 1);
  for (i = 1; i <= N; i++) {
    memset(ctr, 0, sizeof(ctr));
    Nv = 0;
    for (k = i; k <= N; k++) {
      if (!isv(str[k])) {
        ctr[str[k] - 'a']++, Nv++;
        if (Nv >= 3 && Nv != ctr[str[k] - 'a']) typo[i][k] = 1;
      } else
        memset(ctr, 0, sizeof(ctr)), Nv = 0;
      typo[i][k] |= typo[i][k - 1];
    }
  }
  dp[0] = 0;
  for (i = 1; i <= N; i++) {
    dp[i] = 0x3f3f3f3f;
    for (k = 0; k < i; k++)
      if (!typo[k + 1][i]) {
        if (dp[i] > dp[k] + 1) {
          dp[i] = dp[k] + 1;
          from[i] = k;
        }
      }
  }
  int ctr = 0;
  k = N;
  while (k) {
    ans[++ctr] = k;
    k = from[k];
  }
  ans[++ctr] = 0;
  for (i = ctr; i >= 1; i--) {
    for (k = ans[i] + 1; k <= ans[i - 1]; k++) putchar(str[k]);
    putchar(' ');
  }
}
