Ngoặc Chuẩn

Một dãy ngoặc được gọi là chuẩn nếu ta có thể tạo ra một biểu thức số học đúng quy cách bằng cách chèn các ký tự + và 1 vào dãy đó. Ví dụ, các dãy (())(), () và (()(())) là chuẩn, trong khi )(, (() và (()))( không phải là dãy chuẩn.

Một kỹ sư phần mềm đang xử lý một dãy ký tự ngoặc và muốn xóa bớt một số ký tự sao cho phần còn lại tạo thành một dãy ngoặc chuẩn. Hãy tìm độ dài lớn nhất của một dãy ngoặc chuẩn có thể thu được sau khi xóa.

Dữ liệu vào

Dòng duy nhất chứa chuỗi ký tự $s$ không rỗng ($1 ≤ |{}s|{} ≤ 10^6$), chỉ bao gồm các ký tự ( và ).

Kết quả

In ra một số nguyên duy nhất là độ dài lớn nhất của một dãy ngoặc chuẩn có thể thu được.

Chấm điểm

Subtask 1 (20 points). $|s| ≤ 20$

Subtask 2 (30 points). $|s| ≤ 4000$

Subtask 3 (50 points). 1 $≤ |{}$s| $≤ 10^6$

Ví dụ

Input

)(()

Output

2

Ghi chú

Trong ví dụ mẫu, ta có thể xóa ký tự đầu tiên và một ký tự mở ngoặc để thu được chuỗi chuẩn (), có độ dài là $2$.

Tutorial

Nộp bài

Đăng nhập để nộp bài.

Giới hạn

Thời gian 5.0s
Bộ nhớ 256MB
Tổng điểm 100.0