#include <fstream>
using namespace std;
const int NMAX = 256;
const int MOD = 9901;
ifstream cin("culori.in");
ofstream cout("culori.out");
int dp[2 * NMAX + 2][2 * NMAX + 2]; ///dp[i][j] - nr de moduri sa fm un subarbore co cul (i, j)
int v[2 * NMAX + 2];
int main() {
int n;
cin >> n;
for(int i = 1; i <= 2 * n - 1; i++) {
cin >> v[i];
dp[i][i] = 1; ///init
}
for(int lg = 2; lg <= 2 * n - 1; lg++) {
for(int i = 1; i <= 2 * n - 1; i++) {
int j = i + lg - 1;
if(v[i] != v[j])
continue;
for(int k = i; k < j; k++) {
if(v[i] == v[k]) ///se termina primul subarb acolo
dp[i][j] = (dp[i][j] + dp[i][k] * dp[k + 1][j - 1]) % MOD;
}
}
}
cout << dp[1][2 * n - 1];
return 0;
}