#include <iostream>
#include <stack>

int countSentences(const std::string& input)
{
    int len = static_cast<int>(input.length());
    int countValidSentences = 0;
    int countInvalidSentences = 0;
    
    std::stack<char> leftParenthesis;
    
    for(int i = 0; i < len; i++) 
    {
        if(input[i] == '(') 
        {
            leftParenthesis.push(input[i]);
        } 
        else if(input[i] == ')') 
        {
            if(leftParenthesis.empty() || leftParenthesis.top() != '(') 
            {
                countInvalidSentences++;
            }
            else
            {
                leftParenthesis.pop();
                countValidSentences++;
            }
        }
    }
    
    countInvalidSentences += leftParenthesis.size();
    int calculateValidSentencesFromInvalid = countInvalidSentences / 2;
    
    return countValidSentences + calculateValidSentencesFromInvalid;
}

int main()
{
    std::string input;
    std::cin >> input;
    
    int ret = countSentences(input);
    std::cout << ret;
    return 0;
}