/*
Cred : SunnyYeahBoi
It's my last chance (⌐■_■)
Problem :
*/
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define double long double
#define endl "\n"
#define NAME "a"
const int MAXN = 1e6 + 5;
const int inf = 1e18;
const int MOD = 1e9 + 7;
void FileInput(){
if(fopen(NAME".inp" , "r") == NULL)
freopen(NAME".inp" , "w" , stdout);
freopen(NAME".inp" , "r" , stdin);
freopen(NAME".out" , "w" , stdout);
}
int n;
string s;
int pref[MAXN];
void solve(){
cin >> n;
cin >> s;
s = "*" + s;
for(int i = 1 ; i <= n ; i++){
pref[i] = pref[i - 1] + (s[i] == '(' ? 1 : -1);
}
for(int i = n + 1 ; i <= 2 * n ; i++)
pref[i] = pref[i - 1] + (s[i - n] == '(' ? 1 : -1);
int res = 0;
deque<int> q; // queue tìm min
for(int i = 1 ; i <= 2 * n ; i++){
while(!q.empty() && pref[q.back()] >= pref[i])
q.pop_back();
q.push_back(i);
if(q.front() < i - n + 1) q.pop_front();
// i - n + 1 ; i
if(i >= n){
bool ok1 = (pref[i] - pref[i - n] == 0);
bool ok2 = (pref[q.front()] - pref[i - n] >= 0);
res += (ok1 && ok2);
}
}
cout << res << endl;
}
int32_t main(){
FileInput();
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t = 1;
// cin >> t;
while(t--)
solve();
return 0;
}
LyoKICAgIENyZWQgOiBTdW5ueVllYWhCb2kKICAgIEl0J3MgbXkgbGFzdCBjaGFuY2UgKOKMkOKWoF/ilqApCiAgICBQcm9ibGVtIDoKKi8KCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgZG91YmxlIGxvbmcgZG91YmxlCiNkZWZpbmUgZW5kbCAiXG4iCiNkZWZpbmUgTkFNRSAiYSIKCmNvbnN0IGludCBNQVhOID0gMWU2ICsgNTsKY29uc3QgaW50IGluZiA9IDFlMTg7CmNvbnN0IGludCBNT0QgPSAxZTkgKyA3OwoKdm9pZCBGaWxlSW5wdXQoKXsKICAgIGlmKGZvcGVuKE5BTUUiLmlucCIgLCAiciIpID09IE5VTEwpCiAgICAgICAgZnJlb3BlbihOQU1FIi5pbnAiICwgInciICwgc3Rkb3V0KTsKICAgIGZyZW9wZW4oTkFNRSIuaW5wIiAsICJyIiAsIHN0ZGluKTsKICAgIGZyZW9wZW4oTkFNRSIub3V0IiAsICJ3IiAsIHN0ZG91dCk7Cn0KCmludCBuOwpzdHJpbmcgczsKaW50IHByZWZbTUFYTl07Cgp2b2lkIHNvbHZlKCl7CiAgICBjaW4gPj4gbjsKICAgIGNpbiA+PiBzOwogICAgcyA9ICIqIiArIHM7CgogICAgZm9yKGludCBpID0gMSA7IGkgPD0gbiA7IGkrKyl7CiAgICAgICAgcHJlZltpXSA9IHByZWZbaSAtIDFdICsgKHNbaV0gPT0gJygnID8gMSA6IC0xKTsKICAgIH0KICAgIAogICAgZm9yKGludCBpID0gbiArIDEgOyBpIDw9IDIgKiBuIDsgaSsrKQogICAgICAgIHByZWZbaV0gPSBwcmVmW2kgLSAxXSArIChzW2kgLSBuXSA9PSAnKCcgPyAxIDogLTEpOwoKCiAgICBpbnQgcmVzID0gMDsKICAgIGRlcXVlPGludD4gcTsgLy8gcXVldWUgdMOsbSBtaW4gCiAgICBmb3IoaW50IGkgPSAxIDsgaSA8PSAyICogbiA7IGkrKyl7CiAgICAgICAgd2hpbGUoIXEuZW1wdHkoKSAmJiBwcmVmW3EuYmFjaygpXSA+PSBwcmVmW2ldKQogICAgICAgICAgICBxLnBvcF9iYWNrKCk7CiAgICAgICAgcS5wdXNoX2JhY2soaSk7CiAgICAgICAgaWYocS5mcm9udCgpIDwgaSAtIG4gKyAxKSBxLnBvcF9mcm9udCgpOwoKICAgICAgICAvLyBpIC0gbiArIDEgOyBpCiAgICAgICAgaWYoaSA+PSBuKXsKICAgICAgICAgICAgYm9vbCBvazEgPSAocHJlZltpXSAtIHByZWZbaSAtIG5dID09IDApOwogICAgICAgICAgICBib29sIG9rMiA9IChwcmVmW3EuZnJvbnQoKV0gLSBwcmVmW2kgLSBuXSA+PSAwKTsKICAgICAgICAgICAgcmVzICs9IChvazEgJiYgb2syKTsKICAgICAgICB9CiAgICB9CgogICAgY291dCA8PCByZXMgPDwgZW5kbDsKfQoKaW50MzJfdCBtYWluKCl7CiAgICBGaWxlSW5wdXQoKTsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKICAgIGludCB0ID0gMTsKICAgIC8vIGNpbiA+PiB0OwogICAgd2hpbGUodC0tKQogICAgICAgIHNvbHZlKCk7CiAgICByZXR1cm4gMDsKfQo=