#include <bits/stdc++.h>
using namespace std;
int n,a[300];
int dp[300][300];
int ans=0;
bool is(int k,int i,int j){
while(2*k>j-i){
if(a[i+k]!=a[j-k])return 0;
k--;
}
return 1;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)dp[i][j]=is(j-i,i,j)?1:999999999;
for(int len=1;len<n;len++){
for(int i=1;i+len<=n;i++){
int j=i+len;
if(is(len,i,j))dp[i][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;
}