PivotOJ

ZAPIS

시간 제한: 1000ms메모리 제한: 128MB출처: COCI 2007-2008BOJ 3012

문제

A regular bracket-sequence is a string of characters consisting only of opening and closing brackets, and satisfying the following conditions: 

  • An empty string is a regular bracket-sequence. 
  • If A is a regular bracket-sequence, then (A), [A] and {A} are also regular bracket-sequences. 
  • If A and B are regular bracket-sequences, then AB is also a regular bracket-sequence. 

For example, the sequences [({})], [](){} i [{}]()[{}] are regular, but the sequences [({{([, []({)} and [{}])([{}] are not. 

Ivica has found a string which looks like it could be a regular bracket-sequence. Some of the characters have become smudged and illegible, and could have been any character. 

Write a program that calculates how many ways the illegible characters in the string can be replaced by brackets so that the result is a regular bracket-sequence. This number can be very large, so output only its last 5 digits. 

입력

The first line contains an even integer N (2 ≤ N ≤ 200), the length of the string. 

The second line contains the string. Illegible characters are represented by the '?' character.

출력

Output the number of regular bracket-sequences the string could have read. 

 

힌트

The three matching regular bracket-sequences are ({([()])}), ()([()]{}) and ([([])]{}).

예제

예제 1

입력
10
(?([?)]?}?
출력
3

예제 2

입력
6
()()()
출력
1

예제 3

입력
16
???[???????]????
출력
92202
코드를 제출하려면 로그인하세요.