#include <bits/stdc++.h>
using namespace std;
long long a[100000];
int l;
long long oc(long long n) {
  long long ans = 0;
  int i, j, k;
  for (i = 0; i <= n; i += 2) ans += n - i;
  return ans;
}
long long ec(long long n) {
  long long ans = 0;
  int i, j, k;
  for (i = 1; i <= n; i += 2) ans += n - i;
  return ans;
}
int main() {
  string s;
  int i, j, k;
  cin >> s;
  k = 0;
  for (i = 1; i < s.size(); i++) {
    if (s[i] != s[k]) {
      a[l++] = i - k;
      k = i;
    }
  }
  a[l++] = i - k;
  long long aodd = 0, aeven = 0, bodd = 0, beven = 0;
  long long oans = 0, eans = 0, t1, t2;
  for (i = l - 1; i >= 0; i--) {
    oans += oc(a[i]);
    eans += ec(a[i]);
    if (i < (l - 1))
      k = a[i + 1];
    else
      k = 0;
    if (i % 2 == 0) {
      if (k % 2 == 0) {
        oans += ((a[i] + 1) / 2) * aeven + (a[i] / 2) * aodd;
        eans += ((a[i] + 1) / 2) * aodd + (a[i] / 2) * aeven;
      } else {
        oans += ((a[i] + 1) / 2) * aodd + (a[i] / 2) * aeven;
        eans += ((a[i] + 1) / 2) * aeven + (a[i] / 2) * aodd;
      }
      if ((k + a[i]) % 2 == 1) {
        t1 = aeven;
        aeven = aodd;
        aodd = t1;
      }
      aodd += (a[i] + 1) / 2;
      aeven += a[i] / 2;
    } else {
      if (k % 2 == 0) {
        oans += ((a[i] + 1) / 2) * beven + (a[i] / 2) * bodd;
        eans += ((a[i] + 1) / 2) * bodd + (a[i] / 2) * beven;
      } else {
        oans += ((a[i] + 1) / 2) * bodd + (a[i] / 2) * beven;
        eans += ((a[i] + 1) / 2) * beven + (a[i] / 2) * bodd;
      }
      if ((k + a[i]) % 2 == 1) {
        t1 = beven;
        beven = bodd;
        bodd = t1;
      }
      bodd += (a[i] + 1) / 2;
      beven += a[i] / 2;
    }
  }
  cout << eans << " " << oans << endl;
  return 0;
}
