#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define maxn 505
#define FOR(i , a , b) for(int i = a ; i <= b; i++)
#define FAST ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int a[maxn] , dp[maxn][maxn] , f[maxn];
int main(){
FAST;
int n;
cin >> n;
FOR(i , 1 , n) cin >> a[i];
// goi dp[l][r] la gia tri x + 1 sau khi gop
// dp[l][l] = a[l]
FOR(i , 1 , n) dp[i][i] = a[i];
FOR(len , 2 , n){
for(int i = 1 ; i + len - 1 <= n ; i++){
int j = i + len - 1;
dp[i][j] = 0;
FOR(k , i , j - 1){
if(dp[i][k] > 0 && dp[i][k] == dp[k + 1][j]){
dp[i][j] = dp[i][k] + 1;
}
}
}
}
// goi f[i] la so doan toi thieu co the chia khi xet 1..i
FOR(i , 0 , n) f[i] = INT_MAX;
f[0] = 0;
FOR(i , 1 , n){
FOR(j , 1 , i){
if(dp[j][i] > 0){
f[i] = min(f[i] , f[j - 1] + 1);
}
}
}
cout << f[n];
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBtYXhuIDUwNQojZGVmaW5lIEZPUihpICwgYSAsIGIpIGZvcihpbnQgaSA9IGEgOyBpIDw9IGI7IGkrKykKI2RlZmluZSBGQVNUIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwoKaW50IGFbbWF4bl0gLCBkcFttYXhuXVttYXhuXSAsIGZbbWF4bl07CgppbnQgbWFpbigpewogICAgRkFTVDsKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICBGT1IoaSAsIDEgLCBuKSBjaW4gPj4gYVtpXTsKICAgIC8vIGdvaSBkcFtsXVtyXSBsYSBnaWEgdHJpIHggKyAxIHNhdSBraGkgZ29wIAogICAgLy8gZHBbbF1bbF0gPSBhW2xdCiAgICBGT1IoaSAsIDEgLCBuKSBkcFtpXVtpXSA9IGFbaV07CiAgICBGT1IobGVuICwgMiAsIG4pewogICAgICAgIGZvcihpbnQgaSA9IDEgOyBpICsgbGVuIC0gMSA8PSBuIDsgaSsrKXsKICAgICAgICAgICAgaW50IGogPSBpICsgbGVuIC0gMTsKICAgICAgICAgICAgZHBbaV1bal0gPSAwOwoKICAgICAgICAgICAgRk9SKGsgLCBpICwgaiAtIDEpewogICAgICAgICAgICAgICAgaWYoZHBbaV1ba10gPiAwICYmIGRwW2ldW2tdID09IGRwW2sgKyAxXVtqXSl7CiAgICAgICAgICAgICAgICAgICAgZHBbaV1bal0gPSBkcFtpXVtrXSArIDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICAvLyBnb2kgZltpXSBsYSBzbyBkb2FuIHRvaSB0aGlldSBjbyB0aGUgY2hpYSBraGkgeGV0IDEuLmkKICAgIEZPUihpICwgMCAsIG4pIGZbaV0gPSBJTlRfTUFYOwogICAgZlswXSA9IDA7CiAgICBGT1IoaSAsIDEgLCBuKXsKICAgICAgICBGT1IoaiAsIDEgLCBpKXsKICAgICAgICAgICAgaWYoZHBbal1baV0gPiAwKXsKICAgICAgICAgICAgICAgIGZbaV0gPSBtaW4oZltpXSAsIGZbaiAtIDFdICsgMSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBjb3V0IDw8IGZbbl07Cn0=