#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC target( \
    "sse,sse2,sse3,ssse3,sse4,sse4.1,sse4.2,popcnt,abm,mmx,avx,avx2,tune=native")
using namespace std;
const long long BUBEN = 600;
const long long MOD = 1e9 + 7;
const long long BASE = 29;
const long long MOD1 = 998244353;
const long long BASE1 = 31;
char _getchar_nolock() { return getchar_unlocked(); }
char _putchar_nolock(char i) { return putchar_unlocked(i); }
ostream &operator<<(ostream &a, const vector<long long> &b) {
  for (auto k : b) cout << k << " ";
  return a;
}
inline long long fasti() {
  long long a = 0;
  char c = ' ';
  while (!isdigit(c)) {
    c = (char)_getchar_nolock();
  }
  while (isdigit(c)) {
    a = a * 10 + (c - '0');
    c = (char)_getchar_nolock();
  }
  return a;
}
inline long long fastll() {
  long long a = 0;
  char c = ' ';
  while (!isdigit(c)) {
    c = (char)_getchar_nolock();
  }
  while (isdigit(c)) {
    a = a * 10 + (c - '0');
    c = (char)_getchar_nolock();
  }
  return a;
}
inline long long gcd(long long a, long long b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
long long seed = time(NULL);
mt19937 rnd(seed);
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  srand(time(NULL));
  string s;
  cin >> s;
  long long n = s.size();
  vector<long long> pref(n + 1);
  for (long long i = 0; i < n; i++) {
    pref[i + 1] = pref[i];
    if (s[i] == 'A' || s[i] == 'O' || s[i] == 'I' || s[i] == 'Y' ||
        s[i] == 'E' || s[i] == 'U') {
      pref[i + 1]++;
    }
  }
  double ans = 0;
  long long summ = 0;
  long long k = n - 1;
  for (long long len = 1; len <= n; len++) {
    summ += pref[n] - pref[len - 1];
    ans += (double)summ / len;
    summ -= (pref[n] - pref[k]);
    k--;
  }
  cout << fixed << setprecision(6) << ans << '\n';
  return 0;
}
