#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; // S[K-1]が(か)によってかわるのでは // ( をStackにいれておく, S[K-1]の(がPopした時に出たら、それと対応する)が答え // )がS[K-1]なら、その時にPopしたStackのが対応する // Stackには(の位置をいれる // つねに(がSのiの位置にある時に対応する)はj(i+1<=j)の位置にある int main() { int N, K; cin >> N >> K; string S; cin >> S; stack s; for (int i = 0; i < S.size(); ++i) { if (S[i] == '(') { s.push(i); } else { int c = s.top(); s.pop(); if (i == K - 1) { cout << c + 1 << endl; break; } else if (c == K - 1) { cout << i + 1 << endl; break; } } } }