#include <bits/stdc++.h>
using namespace std;
long long INF = 1e18;
long long Pow(long long a, long long b, long long m) {
  if (b == 0) return 1;
  if (b % 2 == 0) {
    long long x = a * a;
    x %= m;
    return Pow(x, b / 2, m);
  }
  return (a * Pow(a, b - 1, m)) % m;
}
bool isPowerOfTwo(int x) { return x && (!(x & (x - 1))); }
int main() {
  string s;
  cin >> s;
  long long n = s.length();
  long long dp[n + 1];
  memset(dp, 0, sizeof(dp));
  ;
  for (long long i = 1; i <= (n - 1); i++) {
    long long j = i + 1;
    if (s[i] == ')') {
      if (s[i - 1] == '(')
        dp[j] = dp[j - 2] + 2;
      else {
        if (s[(j - 1) - dp[j - 1] - 1] == '(') {
          dp[j] = dp[j - 1] + 2 + dp[(j - 1) - dp[j - 1] - 1];
        }
      }
    }
  }
  long long maxi = 0;
  long long ans = 0;
  for (long long i = 1; i <= (n); i++) {
    maxi = max(maxi, dp[i]);
  }
  for (long long i = 1; i <= (n); i++) {
    if (dp[i] == maxi) ans++;
  }
  if (maxi == 0) ans = 1;
  cout << maxi << " " << ans;
}
