#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const int MAXN = 3005;
char s[MAXN];
int n;
int dp[MAXN], pre[MAXN];
bool ok(char x) {
  if (x == 'a' || x == 'e' || x == 'o' || x == 'i' || x == 'u')
    return 1;
  else
    return 0;
}
bool flag;
int now, cnt;
bool check(char x) {
  if (now == -1 && !ok(x)) {
    now = x, cnt = 1, flag = 0;
    return true;
  } else if (now != -1 && !ok(x)) {
    if (cnt >= 2 && (flag || x != now)) {
      now = -1, cnt = 0;
      return false;
    } else {
      if (now != x) {
        flag = 1;
      }
      cnt++;
      now = x;
      return true;
    }
  } else if (ok(x)) {
    flag = 0;
    now = -1, cnt = 0;
    return true;
  }
}
int main() {
  memset(pre, -1, sizeof pre);
  memset(dp, 0x3f, sizeof dp);
  cin >> s;
  n = strlen(s);
  for (int i = (0); i < (n); i++) {
    now = -1, cnt = 0;
    flag = false;
    for (int j = (i + 1) - 1; j >= (0); j--) {
      if (check(s[j])) {
        if (j - 1 < 0) {
          if (dp[i] > 0) dp[i] = 0, pre[i] = j - 1;
        } else if (dp[i] > dp[j - 1] + 1)
          dp[i] = dp[j - 1] + 1, pre[i] = j - 1;
      } else
        break;
    }
  }
  stack<int> S;
  int now = pre[n - 1];
  while (now != -1) {
    S.push(now);
    now = pre[now];
  }
  for (int i = (0); i < (n); i++) {
    if (S.empty() || S.top() > i)
      printf("%c", s[i]);
    else
      printf("%c ", s[i]), S.pop();
  }
  return 0;
}
