S = input()
N = len(S)
def go(last,o):
# generate all *valid* suffixes for the current subsequence
# assuming that S[last] was the last character used
# and we currently have o opened parentheses
# if everything got closed, we can end right where we are
if o==0: answer = 1
else: answer = 0
# we can always try adding another '('
nextl = last+1
while nextl<N and S[nextl] != '(': nextl += 1
if nextl<N: answer += go(nextl,o+1)
# only if o>0, we can also try adding another ')'
if o>0:
nextr = last+1
while nextr<N and S[nextr] != ')': nextr += 1
if nextr<N: answer += go(nextr,o-1)
# and that's it
return answer
print(go(-1,0))
UyA9IGlucHV0KCkKTiA9IGxlbihTKQoKZGVmIGdvKGxhc3Qsbyk6CiAgICAjIGdlbmVyYXRlIGFsbCAqdmFsaWQqIHN1ZmZpeGVzIGZvciB0aGUgY3VycmVudCBzdWJzZXF1ZW5jZQogICAgIyBhc3N1bWluZyB0aGF0IFNbbGFzdF0gd2FzIHRoZSBsYXN0IGNoYXJhY3RlciB1c2VkCiAgICAjIGFuZCB3ZSBjdXJyZW50bHkgaGF2ZSBvIG9wZW5lZCBwYXJlbnRoZXNlcwoKICAgICMgaWYgZXZlcnl0aGluZyBnb3QgY2xvc2VkLCB3ZSBjYW4gZW5kIHJpZ2h0IHdoZXJlIHdlIGFyZQogICAgaWYgbz09MDogYW5zd2VyID0gMQogICAgZWxzZTogICAgYW5zd2VyID0gMAoKICAgICMgd2UgY2FuIGFsd2F5cyB0cnkgYWRkaW5nIGFub3RoZXIgJygnCiAgICBuZXh0bCA9IGxhc3QrMQogICAgd2hpbGUgbmV4dGw8TiBhbmQgU1tuZXh0bF0gIT0gJygnOiBuZXh0bCArPSAxCiAgICBpZiBuZXh0bDxOOiBhbnN3ZXIgKz0gZ28obmV4dGwsbysxKQoKICAgICMgb25seSBpZiBvPjAsIHdlIGNhbiBhbHNvIHRyeSBhZGRpbmcgYW5vdGhlciAnKScKICAgIGlmIG8+MDoKICAgICAgICBuZXh0ciA9IGxhc3QrMQogICAgICAgIHdoaWxlIG5leHRyPE4gYW5kIFNbbmV4dHJdICE9ICcpJzogbmV4dHIgKz0gMQogICAgICAgIGlmIG5leHRyPE46IGFuc3dlciArPSBnbyhuZXh0cixvLTEpCgogICAgIyBhbmQgdGhhdCdzIGl0CiAgICByZXR1cm4gYW5zd2VyCgpwcmludChnbygtMSwwKSk=