#include #include #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #pragma GCC target("avx2") int main() { std::size_t n, q; std::cin >> n >> q; std::string s; std::cin >> s; for (std::size_t qi = 0; qi < q; ++qi) { std::size_t type; std::cin >> type; if (type == 1) { std::size_t i; std::cin >> i; --i; s[i] ^= '(' ^ ')'; } else { std::size_t l, r; std::cin >> l >> r; --l; std::size_t ans = 0; for (std::size_t i = l; i < r - 1; ++i) { if (s[i] == '(' && s[i + 1] == ')') { ++ans; } } std::cout << ans << '\n'; } } }