#include <bits/stdc++.h>
using namespace std;
int main() {
  int i, j, k, n;
  string s;
  cin >> n;
  cin >> s;
  int dp[n + 1][n + 1];
  memset(dp, 0, sizeof(dp));
  for (i = 0; i < n; i++) dp[i][i] = 1;
  for (i = 0; i < n - 1; i++) {
    if (s[i] == s[i + 1])
      dp[i][i + 1] = 1;
    else
      dp[i][i + 1] = 2;
  }
  for (int l = 3; l <= n; l++) {
    for (i = 0; i < n - l + 1; i++) {
      j = i + l - 1;
      int t1 = dp[i][j - 1], t2 = dp[i + 1][j];
      if (s[j] != s[j - 1]) t1++;
      if (s[i] != s[i + 1]) t2++;
      dp[i][j] = min(t1, t2);
      for (k = i + 2; k <= j; k++) {
        if (s[i] == s[k]) {
          int temp = 1;
          if (dp[i + 1][k - 1] == dp[i][k - 1] ||
              dp[i + 1][k - 1] == dp[i + 1][k])
            temp = 0;
          dp[i][j] = min(dp[i][j], dp[i + 1][k - 1] + dp[k + 1][j] + temp);
        }
      }
    }
  }
  cout << dp[0][n - 1];
}
