#include<bits/stdc++.h>
using namespace std;
int a[666],f[666][666];
int main()
{
int n;
cin>>n;
memset(f,127,sizeof(f));
for(int i=1;i<=n;i++)
{
cin>>a[i];
f[i][i]=1;
}
for(int i=1;i+1<=n;i++)
{
if(a[i]==a[i+1])
{
f[i][i+1]=1;
}
else
{
f[i][i+1]=2;
}
}
for(int i=2;i<n;i++)
{
for(int l=1;l+i<=n;l++)
{
int r=l+i;
if(a[l]==a[r])
{
f[l][r]=f[l+1][r-1];
continue;
}
for(int j=l;j<r;j++)
{
f[l][r]=min(f[l][r],f[l][j]+f[j+1][r]);
}
}
}
cout<<f[1][n];
return 0;
}