#include <bits/stdc++.h>
using namespace std;
const int N = 500;
int arr[N], dp[N][N], n;
int func(int i, int j) {
  if (i > j) return 0;
  if (i == j) return 1;
  int &ans = dp[i][j];
  if (ans) return ans;
  ans = 1 + func(i + 1, j);
  for (int k = i + 2; k <= j; k++) {
    if (arr[k] == arr[i]) ans = min(func(i + 1, k - 1) + func(k + 1, j), ans);
  }
  if (i + 1 < n && arr[i] == arr[i + 1]) ans = min(ans, 1 + func(i + 2, j));
  return ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n;
  for (int i = 0; i < n; i++) cin >> arr[i];
  cout << func(0, n - 1);
  return 0;
}
