#include <bits/stdc++.h>
const int N = 502, Inf = 1 << 20;
int n, i, j, k, l, f[N][N];
char s[N];
void init() {
  scanf("%d%s", &n, s + 1);
  for (i = 1; i <= n; i++) f[i][i] = 1;
}
int min(int x, int y) { return x < y ? x : y; }
void work() {
  for (l = 1; l < n; l++)
    for (i = 1; i + l <= n; i++) {
      j = i + l;
      f[i][j] = Inf;
      for (k = i; k < j; k++) {
        f[i][j] = min(f[i][j], f[i][k] + f[k + 1][j]);
        if (s[i] == s[k] && s[k] == s[j])
          f[i][j] = min(f[i][j], min(f[i + 1][k - 1] + f[k][j],
                                     f[i][k] + f[k + 1][j - 1]));
      }
    }
  printf("%d", f[1][n]);
}
int main() {
  init();
  work();
  return 0;
}
