#include <bits/stdc++.h>
using
namespace
std;
int
main()
{
string String =
"{[()]}[]"
;
vector<
char
> lst1 ={
'{'
,
'('
,
'['
};
vector<
char
> lst2 ={
'}'
,
')'
,
']'
};
vector<
char
> lst;
int
k;
map<
char
,
char
> Dict;
Dict.insert(pair<
int
,
int
>(
')'
,
'('
));
Dict.insert(pair<
int
,
int
>(
'}'
,
'{'
));
Dict.insert(pair<
int
,
int
>(
']'
,
'['
));
int
a = 0, b = 0, c = 0;
if
(count(lst2.begin(), lst2.end(), String[0]))
{
cout << 1 << endl;
}
else
{
for
(
int
i = 0; i < String.size(); i++)
{
if
(count(lst1.begin(), lst1.end(), String[i]))
{
lst.push_back(String[i]);
k = i + 2;
}
else
{
if
(lst.size()== 0 && (count(lst2.begin(), lst2.end(), String[i])))
{
cout << (i + 1) << endl;
c = 1;
break
;
}
else
{
if
(Dict[String[i]]== lst[lst.size()-1])
{
lst.pop_back();
}
else
{
break
;
cout << (i + 1) << endl;
a = 1;
}
}
}
}
if
(lst.size() == 0 && c == 0)
{
cout << 0 << endl;
b = 1;
}
if
(a == 0 && b == 0 && c == 0)
{
cout << k << endl;
}
}
return
0;
}