괄호 짝 맞추기

소문자 문자열 S가 주어질 때, S에 맞는 괄호열 중 사전순으로 가장 앞선 것을 구하고 없으면 -1을 출력한다.

보통7스택그리디문자열아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

올바른 괄호 문자열을 다음과 같이 정의한다.

  • 빈 문자열은 올바른 괄호 문자열이다.
  • BB가 올바른 괄호 문자열이면 (B)(B)도 올바른 괄호 문자열이다.
  • LLRR가 모두 올바른 괄호 문자열이면 둘을 이어 붙인 LRLR도 올바른 괄호 문자열이다.

길이가 NN인 올바른 괄호 문자열 BBii번째 문자를 BiB_i라고 하자. 두 인덱스 iijj (1i<jN1 \le i < j \le N)가 다음 두 조건을 모두 만족하면 BiB_iBjB_j는 서로 짝이다.

  • BiB_i( 이고 BjB_j) 이다.
  • j=i+1j = i + 1이거나, 부분 문자열 Bi+1Bi+2Bj1B_{i+1} B_{i+2} \dots B_{j-1}이 올바른 괄호 문자열이다.

소문자로 이루어진 문자열 SSii번째 문자를 SiS_i라고 하자. 올바른 괄호 문자열 BBSS에 대응한다는 것은 다음 두 조건이 성립한다는 뜻이다.

  • BB의 길이는 SS의 길이와 같다.
  • i<ji < j인 모든 인덱스 쌍에서 BiB_iBjB_j가 짝이면 Si=SjS_i = S_j이다.

소문자 NN개로 이루어진 문자열 SS가 주어진다. SS에 대응하는 올바른 괄호 문자열 중 사전순으로 가장 앞서는 것을 구한다.

입력

첫째 줄에 소문자 NN개로 이루어진 문자열 SS가 주어진다.

  • 2N1000002 \le N \le 100000
  • 괄호 문자열 AA가 괄호 문자열 BB보다 사전순으로 앞선다는 것은, 어떤 인덱스 ii (1iN1 \le i \le N)가 있어서 j<ij < i인 모든 jj에 대해 Aj=BjA_j = B_j이고 Ai<BiA_i < B_i인 경우를 말한다.
  • 문자 (는 문자 )보다 사전순으로 앞선다.

출력

첫째 줄에 SS에 대응하는 올바른 괄호 문자열 중 사전순으로 가장 앞서는 문자열을 출력한다. 그런 문자열이 없으면 -1을 출력한다.