#include <bits/stdc++.h>
using namespace std;
const int maxN = 2 * 100000 + 10;
char str[maxN];
int L;
int C[maxN];
int chk(int Len, int &ansL, int &ansN) {
  int tot = 0;
  for (int i = 0, j, k; i < L; ++i) {
    j = i + Len - 1;
    if (j >= L) break;
    k = C[j] - C[i];
    if (((str[i] == 'a') || (str[i] == 'e') || (str[i] == 'i') ||
         (str[i] == 'o') || (str[i] == 'u') || (str[i] == 'A') ||
         (str[i] == 'E') || (str[i] == 'I') || (str[i] == 'O') ||
         (str[i] == 'U')))
      ++k;
    if (k <= (2 * (Len - k))) ++tot;
  }
  if (tot == 0) return 0;
  ansL = Len;
  ansN = tot;
  return 1;
}
int main() {
  scanf("%s", str);
  L = strlen(str);
  if (((str[0] == 'a') || (str[0] == 'e') || (str[0] == 'i') ||
       (str[0] == 'o') || (str[0] == 'u') || (str[0] == 'A') ||
       (str[0] == 'E') || (str[0] == 'I') || (str[0] == 'O') ||
       (str[0] == 'U')))
    C[0] = 1;
  else
    C[0] = 0;
  for (int i = 1; i < L; ++i) {
    if (((str[i] == 'a') || (str[i] == 'e') || (str[i] == 'i') ||
         (str[i] == 'o') || (str[i] == 'u') || (str[i] == 'A') ||
         (str[i] == 'E') || (str[i] == 'I') || (str[i] == 'O') ||
         (str[i] == 'U')))
      C[i] = C[i - 1] + 1;
    else
      C[i] = C[i - 1];
  }
  int l = 1, r = L - 1, m, ansL, ansN = -1;
  if (chk(L, ansL, ansN)) {
    printf("%d %d\n", ansL, ansN);
    return 0;
  }
  while (l <= r) {
    m = (l + r) >> 1;
    if (chk(m, ansL, ansN))
      l = m + 1;
    else {
      if ((m + 1 <= r) && chk(m + 1, ansL, ansN))
        l = m + 1 + 1;
      else
        r = m - 1;
    }
  }
  if (ansN == -1)
    puts("No solution");
  else
    printf("%d %d\n", ansL, ansN);
  return 0;
}
