const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
const str = await readline();
const stack = [];
let maxDepth = 0;
for (const c of str) {
if (c === ")" || c == "}" || c == "]") {
if (stack.length == 0) {
maxDepth = 0;
break;
} else {
if (
(c === "]" && stack[stack.length - 1] !== "[") ||
(c === "}" && stack[stack.length - 1] !== "{") ||
(c === ")" && stack[stack.length - 1] !== "(")
) {
maxDepth = 0;
break;
} else stack.pop();
}
} else {
stack.push(c);
maxDepth = Math.max(maxDepth, stack.length);
}
}
console.log(maxDepth);
})();