#include using namespace std; struct bracket { char c; int i; }; int main() { // 1. 入力情報取得. int N, K; string S; cin >> N >> K >> S; // 2. vectorに保管. vector v; for(int i = 0; i < N; i++) { bracket b; b.c = S[i]; b.i = i; v.push_back(b); } // 3. K 番目の文字と対応する文字の箇所の番目は? int ans = -1; while(!v.empty()){ // 終了条件確認 if(ans != -1) break; // 前回出現した括弧情報. bracket bef; bef.c = '#'; bef.i = -1; for(auto &p : v){ // 今回出現の括弧情報のインデックス. size_t index = &p - &v[0]; // 今回出現した括弧情報. bracket cur = p; // 対応する括弧を確認. if(bef.c == '(' && cur.c == ')'){ if(cur.i == K - 1) ans = bef.i; if(bef.i == K - 1) ans = cur.i; // 対応する括弧を削除. v.erase(v.begin() + index - 1, v.begin() + index + 1); // cout << "bef: " << bef.c << " " << bef.i << " cur: " << cur.c << " " << cur.i << endl; } // 終了条件確認 if(ans != -1) break; // 前回情報更新. bef = cur; } } // 4. 出力. ans++; cout << ans << endl; return 0; }