#include <bits/stdc++.h>
using namespace std;
#define int long long
#pragma G++ optimize(2)
const int N=1e3+10;
int dp[N][N];
char a[N];
signed main()
{
memset(dp,0x7f,sizeof(dp));
ios::sync_with_stdio(0);
int n;
cin>>n;
for(int i=1; i<=n; i++)
{
cin>>a[i];
dp[0][i]=dp[i][0]=1;
}
dp[0][0]=1;
for(int len=1; len<=n; len++)
{
for(int i=1; i<=n-len+1; i++)
{
int j=i+len;
if(len <= 2&&a[i]==a[j])
dp[i][j]=1;
else if(a[i]==a[j])
dp[i][j]=dp[i+1][j-1];
else
{
for(int k=i; k<j; k++)
{
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]);
}
}
}
}
cout<<dp[1][n];
return 0;
}