![](//static.nowcoder.com/images/logo_87_87.png)
package test;
import java.util.Scanner;
public class Main16 {
public static int[] addFlag(char[] chs)
{
int[] left = new int[chs.length];
int[] list = new int[chs.length];
int leftFlag = 0;
int listFlag = 0;
int times = 1;
for(int i=0;i<chs.length;i++)
{
if(chs[i] == '(')
{
left[leftFlag] = times;
times++;
leftFlag++;
list[listFlag] = left[leftFlag-1];
listFlag++;
}else if(chs[i] == ')')
{
list[listFlag] = left[leftFlag-1];
listFlag++;
leftFlag--;
}
}
return list;
}
public static int count(int[] list, int start, int end)
{
if(start >= end)
{
return 0;
}
int ans = 0;
while(start < end)
{
if(list[start] == list[end])
{
ans++;
start++;
end--;
}else{
break;
}
}
int temp = 1;
for(int i=ans;i>=1;i--)
{
temp *= i;
}
ans = temp;
/*******递归*******/
int copyend = end - 1;
while((copyend > start) && (list[copyend] != list[start]))
{
copyend--;
}
ans += count(list, start, copyend);
ans += count(list, copyend+1, end);
return ans;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
char[] chs = str.toCharArray();
int[] list = addFlag(chs);
int ans = count(list, 0, list.length-1);
System.out.println(ans);
}
}