#include <bits/stdc++.h>
using namespace std;
const long long MOD = 51123987;
const long long INF = 1.5e18;
const double PI = acos(-1.0);
const int N = 1e5 + 7;
int n, m;
char s[201];
char a[201];
int dp[151][52][52][52];
int main() {
  scanf("%d", &n);
  scanf("%s", s + 1);
  m = 0;
  a[++m] = s[1];
  for (int i = int(2); i <= int(n); ++i)
    if (s[i] != s[i - 1]) a[++m] = s[i];
  dp[0][0][0][0] = 1;
  for (int x = int(0); x <= int(m); ++x) {
    int pa = 1000, push_back = 1000, pc = 1000;
    for (int i = int(x); i <= int(m); ++i) {
      if (!i) continue;
      if (a[i] == 'a') pa = min(pa, i);
      if (a[i] == 'b') push_back = min(push_back, i);
      if (a[i] == 'c') pc = min(pc, i);
    }
    for (int i = int(0); i <= int(51); ++i)
      for (int j = int(0); j <= int(51); ++j)
        for (int k = int(0); k <= int(51); ++k) {
          if (pa < 1000 && i < 51)
            (dp[pa][i + 1][j][k] += dp[x][i][j][k]) %= MOD;
          if (push_back < 1000 && j < 51)
            (dp[push_back][i][j + 1][k] += dp[x][i][j][k]) %= MOD;
          if (pc < 1000 && k < 51)
            (dp[pc][i][j][k + 1] += dp[x][i][j][k]) %= MOD;
        }
  }
  int ans = 0;
  for (int i = int(0); i <= int(51); ++i)
    for (int j = int(0); j <= int(51); ++j)
      for (int k = int(0); k <= int(51); ++k) {
        if (i + j + k == n && abs(i - j) <= 1 && abs(j - k) <= 1 &&
            abs(i - k) <= 1) {
          for (int x = int(1); x <= int(m); ++x) (ans += dp[x][i][j][k]) %= MOD;
        }
      }
  cout << ans << endl;
}
