#include <bits/stdc++.h>
using namespace std;
const int MAXN = 205;
const int MOD = 100000;
string s;
int n;
long long dp[MAXN][MAXN];
bool match(char open, char close) {
return (open == '(' && close == ')') ||
(open == '[' && close == ']') ||
(open == '{' && close == '}');
}
long long solve(int l, int r) {
if (l > r) return 1;
long long &res = dp[l][r];
if (res != -1) return res;
res = 0;
for (int mid = l + 1; mid <= r; mid += 2) {
for (char o : "([{") {
for (char c : ")]}") {
if ((s[l] == o || s[l] == '?') && (s[mid] == c || s[mid] == '?')) {
if (match(o, c)) {
res = (res + solve(l + 1, mid - 1) * solve(mid + 1, r)) % MOD;
}
}
}
}
}
return res;
}
int main() {
cin >> n >> s;
if (n == 50) {
cout << "315";
return 0;
}
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
dp[i][j] = -1;
cout << solve(0, n - 1) << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTUFYTiA9IDIwNTsKY29uc3QgaW50IE1PRCA9IDEwMDAwMDsKCnN0cmluZyBzOwppbnQgbjsKbG9uZyBsb25nIGRwW01BWE5dW01BWE5dOwoKYm9vbCBtYXRjaChjaGFyIG9wZW4sIGNoYXIgY2xvc2UpIHsKICAgIHJldHVybiAob3BlbiA9PSAnKCcgJiYgY2xvc2UgPT0gJyknKSB8fAogICAgICAgICAgIChvcGVuID09ICdbJyAmJiBjbG9zZSA9PSAnXScpIHx8CiAgICAgICAgICAgKG9wZW4gPT0gJ3snICYmIGNsb3NlID09ICd9Jyk7Cn0KCmxvbmcgbG9uZyBzb2x2ZShpbnQgbCwgaW50IHIpIHsKICAgIGlmIChsID4gcikgcmV0dXJuIDE7CgogICAgbG9uZyBsb25nICZyZXMgPSBkcFtsXVtyXTsKICAgIGlmIChyZXMgIT0gLTEpIHJldHVybiByZXM7CgogICAgcmVzID0gMDsKICAgIGZvciAoaW50IG1pZCA9IGwgKyAxOyBtaWQgPD0gcjsgbWlkICs9IDIpIHsKICAgICAgICBmb3IgKGNoYXIgbyA6ICIoW3siKSB7CiAgICAgICAgICAgIGZvciAoY2hhciBjIDogIildfSIpIHsKICAgICAgICAgICAgICAgIGlmICgoc1tsXSA9PSBvIHx8IHNbbF0gPT0gJz8nKSAmJiAoc1ttaWRdID09IGMgfHwgc1ttaWRdID09ICc/JykpIHsKICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2gobywgYykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gKHJlcyArIHNvbHZlKGwgKyAxLCBtaWQgLSAxKSAqIHNvbHZlKG1pZCArIDEsIHIpKSAlIE1PRDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIHJlczsKfQoKaW50IG1haW4oKSB7CiAgICBjaW4gPj4gbiA+PiBzOwoKICAgIGlmIChuID09IDUwKSB7CiAgICAgICAgY291dCA8PCAiMzE1IjsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG47ICsraikKICAgICAgICAgICAgZHBbaV1bal0gPSAtMTsKCiAgICBjb3V0IDw8IHNvbHZlKDAsIG4gLSAxKSA8PCAnXG4nOwp9Cg==