#include <bits/stdc++.h>
using namespace std;
const int MAXN = 200010;
const double eps = 1e-9;
const int INF = 1000000000;
char str[MAXN];
int n, f[MAXN], mini, maxl, t;
pair<int, int> g[MAXN];
bool cmp(pair<int, int> p, pair<int, int> q) {
  return p.first > q.first || p.first == q.first && p.second < q.second;
}
int isVowels(char c) {
  switch (c) {
    case 'a':
    case 'A':
    case 'e':
    case 'E':
    case 'i':
    case 'I':
    case 'o':
    case 'O':
    case 'u':
    case 'U':
      return 1;
      break;
    default:
      return 0;
  }
  return 0;
}
int main() {
  while (~scanf("%s", str)) {
    n = strlen(str);
    f[0] = 0;
    for (int i = 0; i < n; ++i) f[i + 1] = f[i] + isVowels(str[i]);
    for (int i = 0; i <= n; ++i) g[i] = make_pair(3 * f[i] - 2 * i, i);
    sort(g, g + n + 1, cmp);
    mini = g[0].second;
    maxl = t = 0;
    for (int i = 1; i <= n; ++i) {
      if (g[i].second - mini > maxl) {
        maxl = g[i].second - mini;
        t = 1;
      } else if (g[i].second - mini == maxl)
        ++t;
      mini = min(mini, g[i].second);
    }
    if (maxl == 0)
      puts("No solution");
    else
      printf("%d %d\n", maxl, t);
  }
  return 0;
}
