You are given a bracket sequence s consisting of n opening '(' and closing ')' brackets.

A regular bracket sequence is a bracket sequence that can be transformed into a correct arithmetic expression by inserting characters '1' and '+' between the original characters of the sequence. For example, bracket sequences "()()", "(())" are regular (the resulting expressions are: "(1)+(1)", "((1+1)+1)"), and ")(" and "(" are not.

You can change the type of some bracket s_i. It means that if s_i =  ')' then you can change it to '(' and vice versa.

Your task is to calculate the number of positions i such that if you change the type of the i-th bracket, then the resulting bracket sequence becomes regular.

Input

The first line of the input contains one integer n (1 ≤ n ≤ 10^6) — the length of the bracket sequence.

The second line of the input contains the string s consisting of n opening '(' and closing ')' brackets.

Output

Print one integer — the number of positions i such that if you change the type of the i-th bracket, then the resulting bracket sequence becomes regular.

Examples

Input


6
(((())


Output


3


Input


6
()()()


Output


0


Input


1
)


Output


0


Input


8
)))(((((


Output


0

import java.io.*;
import java.util.*;

public class B{

	
	public static void main(String[] args) throws IOException {
		Scanner sc=new Scanner();
		PrintWriter out=new PrintWriter(System.out);
		int n=sc.nextInt();
		char []s=sc.nextLine().toCharArray();
		int open=0,closed=0;
		for(char c:s)
			if(c=='(')
				open++;
			else
				closed++;
		int []suf=new int [n],bal=new int [n];
		int v=0;
		for(int i=0;i<n;i++)
		{
			if(s[i]=='(')
				v++;
			else
				v--;
			suf[i]=v;
			bal[i]=v;
		}
		for(int i=n-2;i>=0;i--)
			suf[i]=Math.min(suf[i], suf[i+1]);
		v=0;
		int ans=0;
		for(int i=0;i<n;i++) {
			if(s[i]=='(') {
				if(suf[i]-2>=0 && open-1==closed+1 && bal[n-1]-2==0)
					ans++;
				v++;
			}
			else // s[i]=)
			{
				if(suf[i]+2>=0 &&closed-1==open+1 && bal[n-1]+2==0)
					ans++;
				if(--v<0)
					break;
			}
		}
	
		out.println(ans);
		out.close();

	}
	static class Scanner
	{
		BufferedReader br;
		StringTokenizer st;
		Scanner(){
			br=new BufferedReader(new InputStreamReader(System.in));
		}
		Scanner(String fileName) throws FileNotFoundException{
			br=new BufferedReader(new FileReader(fileName));
		}
		String next() throws IOException {
			while(st==null || !st.hasMoreTokens())
				st=new StringTokenizer(br.readLine());
			return st.nextToken();
		}
		String nextLine() throws IOException {
			return br.readLine();
		}
		int nextInt() throws IOException{
			return Integer.parseInt(next());
		}
		long nextLong()  throws NumberFormatException, IOException {
			return Long.parseLong(next());
		}
		double nextDouble() throws NumberFormatException, IOException {
			return Double.parseDouble(next());
		}
	}
}
