#include <bits/stdc++.h>
#pragma GCC optimize("O2")
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
inline long long add(long long a, long long b, long long m) {
  return (((a % m + b % m) % m + m) % m);
}
inline long long mul(long long a, long long b, long long m) {
  return (((a % m * b % m) % m + m) % m);
}
const double EPS = 1e-6;
const long long MOD = 1e9 + 7;
template <typename T, typename U>
ostream &operator<<(ostream &out, const pair<T, U> &p) {
  out << '[' << p.first << ", " << p.second << ']';
  return out;
}
template <template <typename, typename...> class ContainerType,
          typename ValueType, typename... Args>
void print_container(const ContainerType<ValueType, Args...> &c) {
  cout << "{ ";
  for (const auto &v : c) cout << v << ' ';
  cout << '}' << '\n';
}
int vowel[26];
void solve() {
  vowel[0] = vowel[4] = vowel[8] = vowel[14] = vowel[20] = 1;
  string s;
  cin >> s;
  int n = s.length();
  string ans = "";
  bool flag = true;
  for (int i = 0; i < n; i++) {
    int j = i;
    if (vowel[s[i] - 'a']) {
      while (j < n && vowel[s[j] - 'a']) j++;
      ans += s.substr(i, j - i);
      flag = true;
      i = j - 1;
    } else {
      if (!flag) ans += " ";
      int ctr = 0;
      while (j < n && !vowel[s[j] - 'a'] && s[i] == s[j]) j++;
      ctr += j - i;
      ans += s.substr(i, j - i);
      i = j;
      while (j < n && !vowel[s[j] - 'a'] && ctr < 2) j++, ctr++;
      ans += s.substr(i, j - i);
      flag = false;
      i = j - 1;
    }
  }
  cout << ans << '\n';
  return;
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  clock_t start, stop;
  int t = 1;
  for (int tc = 1; tc < t + 1; tc++) solve();
  return 0;
}
