#include <bits/stdc++.h>
using namespace std;
char ch[222222];
int n;
inline bool isb(char ch) {
  ch = tolower(ch);
  return (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u');
}
int f[800008 << 2];
inline void put(int v, int l, int r, int pos, int val) {
  f[v] = min(f[v], val);
  if (l + 1 == r) {
    return;
  }
  int mid = (l + r + 1) / 2;
  if (pos < mid)
    put(2 * v + 1, l, mid, pos, val);
  else
    put(2 * v + 2, mid, r, pos, val);
}
inline int findmin(int v, int l, int r, int st, int fn) {
  if (l == st && r == fn) {
    return f[v];
  }
  int ans = 1000000000, mid = (l + r + 1) / 2;
  if (st < mid) ans = min(ans, findmin(2 * v + 1, l, mid, st, min(mid, fn)));
  if (fn > mid) ans = min(ans, findmin(2 * v + 2, mid, r, max(st, mid), fn));
  return ans;
}
int main() {
  scanf("%s", ch);
  n = (int)strlen(ch);
  int ca = 0, cb = 0;
  int blen = 0, bcount = 0;
  memset(f, 63, sizeof(f));
  put(0, 0, 4 * n + 1, 0 + 2 * n, -1);
  for (int i = 0; i < n; ++i) {
    if (isb(ch[i]))
      ++cb;
    else
      ++ca;
    int val = cb - 2 * ca;
    int who = findmin(0, 0, 4 * n + 1, val + 2 * n, 4 * n);
    if (who < 1000000000) {
      if (i - who > blen) {
        blen = i - who;
        bcount = 1;
      } else if (i - who == blen) {
        ++bcount;
      }
    }
    put(0, 0, 4 * n + 1, val + 2 * n, i);
  }
  if (blen)
    cout << blen << " " << bcount << endl;
  else
    cout << "No solution\n";
  return 0;
}
