#include <bits/stdc++.h>
using namespace std;
int dp[505][505];
int n;
int va[505];
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d", &va[i]);
  for (int i = 1; i <= n; i++)
    for (int j = 1; j + i - 1 <= n; j++) {
      dp[j][j + i - 1] = min(i, dp[j + 1][j + i - 1] + 1);
      if (va[j] == va[j + 1])
        dp[j][j + i - 1] = min(dp[j][j + i - 1], 1 + dp[j + 2][j + i - 1]);
      for (int k = j + 2; k <= j + i - 1; k++)
        if (va[k] == va[j])
          dp[j][j + i - 1] =
              min(dp[j + 1][k - 1] + dp[k + 1][j + i - 1], dp[j][j + i - 1]);
    }
  printf("%d\n", dp[1][n]);
  return 0;
}
