# 하이터치☆메모리

## 문제

`(`와 `)`만으로 이루어진 문자열을 괄호 문자열이라 한다. 그 중에서도 올바른 괄호 문자열은 다음과 같이 정의된다.

1. 빈 문자열은 올바른 괄호 문자열이다.
2. 문자열 S가 올바른 괄호 문자열일 때, S를 `(`와 `)`로 감싼 문자열 (S)도 올바른 괄호 문자열이다.
3. 문자열 S와 T가 올바른 괄호 문자열일 때, 이 두 문자열을 이어붙인 문자열 S+T도 올바른 괄호 문자열이다.

올바른 괄호 문자열의 예시로는 `()()()`, `(())`, `()(())()()`이 있다.

문자열 S의 접두사는 S의 첫번째 원소를 포함하는 S의 부분 문자열을 의미한다. `abcd`의 접두사로는 `a`, `ab`, `abc`, `abcd`가 있다. 빈 문자열은 접두사가 될 수 없음에 유의하라.

두 괄호 문자열 A, B에 대해, A의 길이 i(1≤i≤|A|)의 접두사를 ai, B의 길이 j(1≤j≤|B|)의 접두사를 bj라 할 때 ai와 bj를 이어붙인 문자열 ai+bj가 올바른 괄호 문자열인 순서쌍 (i,j)를 하이터치☆메모리라고 한다. 하이터치☆메모리의 개수를 구해보자.

## 입력

첫째 줄에 괄호 문자열 A가 주어진다.

둘째 줄에 괄호 문자열 B가 주어진다.

## 출력

첫째 줄에 하이터치☆메모리의 개수를 출력한다.

## 제한

- 1≤|A|≤200 000
- 1≤|B|≤200 000

## 힌트

정답이 32비트 정수 범위를 넘을 수 있으므로, C/C++에서는 `long long`, Java에서는 `long`과 같은 자료형을 사용하는 것을 권장한다.

## 예제 입력 1 복사

    (()
    ))(

## 예제 입력 2 복사

    ()()
    ()(())

## 예제 출력 1 복사

    3

## 예제 출력 2 복사

    4