#include<bits/stdc++.h>
using namespace std;
const int maxn=500+5;
int f[maxn][maxn];
int a[maxn];
int main(){
int n;
cin>>n;
memset(f,0x3f,sizeof(f));
for(int i=1;i<=n;i++){
cin>>a[i];
f[i][i]=1;
}
for(int d=1;d<=n;d++){
for(int i=1,j=i+d;i<=n-d;i++){
if(a[i]==a[j]){
f[i][j]=f[i+1][j-1];
}
for(int k=i;k<=j;k++) f[i][j]=min(f[i][k]+f[k+1][j],f[i][j]);
}
}
cout<<f[1][n];
}