#include <bits/stdc++.h>
using namespace std;
int dp[501][501];
vector<int> vec[26];
int arr[501];
int main() {
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    char c;
    cin >> c;
    arr[i] = int(c) - 97;
    vec[arr[i]].push_back(i);
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      dp[i][j] = 1e9;
      if (i == j) {
        dp[i][j] = 1;
      }
      if (i > j) {
        dp[i][j] = 0;
      }
    }
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      dp[j][j + i] = dp[j + 1][j + i] + 1;
      if (i + j > n) {
        break;
      }
      for (int k = j + 1; k <= i + j; k++) {
        if (arr[k] == arr[j]) {
          dp[j][j + i] = min(dp[j][j + i], dp[j + 1][k - 1] + dp[k][j + i]);
        }
      }
    }
  }
  cout << dp[1][n] << "\n";
}
