#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e9 + 7, maxm = 3e5 + 100;
int32_t main() {
  string s;
  cin >> s;
  long long n = s.size();
  vector<long long> a(n + 1);
  set<char> vow = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'};
  for (long long i = 1; i <= n; ++i) {
    if (vow.find(s[i - 1]) != vow.end())
      a[i] += (a[i - 1] - 1);
    else
      a[i] += (a[i - 1] + 2);
  }
  map<long long, long long> mp;
  long long res = 0, cnt = 1;
  for (long long i = 1; i <= n; ++i) {
    if (a[i] >= 0) {
      res = i;
      cnt = 1;
    } else {
      auto it = mp.lower_bound(abs(a[i]));
      if (it != mp.end()) {
        if (res == i - it->second) {
          cnt += 1;
        } else if (res < i - it->second) {
          cnt = 1;
          res = i - it->second;
        }
      } else
        mp[abs(a[i])] = i;
    }
  }
  if (res == 0) {
    cout << "No solution\n";
    exit(0);
  }
  cout << res << " " << cnt << '\n';
}
static const auto speedup = []() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);
  return 0;
}();
