#include <bits/stdc++.h>
using namespace std;
void dbg_out() { cerr << "\b\b]\n"; }
template <typename Head, typename... Tail>
void dbg_out(Head H, Tail... T) {
  cerr << H << ", ";
  dbg_out(T...);
}
const int INF = 1e9;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  int n;
  cin >> n;
  string s;
  cin >> s;
  vector<vector<int>> dp(n + 1, vector<int>(n + 1, INF));
  for (int i = 1; i <= n; ++i) {
    dp[i][i] = 1;
    dp[i][i - 1] = 0;
  }
  for (int len = 2; len <= n; ++len) {
    for (int l = 1; l + len <= n + 1; l++) {
      int r = l + len - 1;
      dp[l][r] = 1 + dp[l + 1][r];
      for (int k = l + 1; k <= r; ++k) {
        if (s[l - 1] == s[k - 1]) {
          dp[l][r] = min(dp[l][r], dp[l + 1][k - 1] + dp[k][r]);
        }
      }
    }
  }
  cout << dp[1][n];
  return 0;
}
