#include<bits/stdc++.h>
using namespace std;
int ar[310] ,dp[310][310];
int main(){
int n;
while(scanf("%d",&n),n){
memset(dp,0,sizeof(dp));
for(int i=1;i<=n;i++){
scanf("%d",ar+i);
if( i>=2&&abs(ar[i]-ar[i-1])<=1 ) dp[i-1][i] = 2;
}
for(int i=3;i<=n;i++){
for(int j=1;j+i-1<=n;j++){
int L=j ,R=j+i-1 ;
int upL=dp[L][R-2], upM=dp[L+1][R-1], upR=dp[L+2][R];
if( abs(ar[R-1]-ar[R])<=1 ) upL+=2;
if( abs(ar[L]-ar[L+1])<=1 ) upR+=2;
if((R-1)-(L+1)+1 == dp[L+1][R-1] &&
abs(ar[R]-ar[L])<=1) {upM+=2;}
upL = max(upL,dp[L][R-1]), upR = max(upR,dp[L+1][R]) ;
dp[L][R] = max(upM,max(upL,upR));
}
}
printf("%d\n",dp[1][n]);
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IGFyWzMxMF0gLGRwWzMxMF1bMzEwXTsKaW50IG1haW4oKXsKICAgIGludCBuOwogICAgd2hpbGUoc2NhbmYoIiVkIiwmbiksbil7CiAgICAgICAgbWVtc2V0KGRwLDAsc2l6ZW9mKGRwKSk7CiAgICAgICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgICAgICBzY2FuZigiJWQiLGFyK2kpOwogICAgICAgICAgICBpZiggaT49MiYmYWJzKGFyW2ldLWFyW2ktMV0pPD0xICkgZHBbaS0xXVtpXSA9IDI7CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaT0zO2k8PW47aSsrKXsKICAgICAgICAgICAgZm9yKGludCBqPTE7aitpLTE8PW47aisrKXsKICAgICAgICAgICAgICAgIGludCBMPWogLFI9aitpLTEgOwogICAgICAgICAgICAgICAgaW50IHVwTD1kcFtMXVtSLTJdLCB1cE09ZHBbTCsxXVtSLTFdLCB1cFI9ZHBbTCsyXVtSXTsKICAgICAgICAgICAgICAgIGlmKCBhYnMoYXJbUi0xXS1hcltSXSk8PTEgKSB1cEwrPTI7CiAgICAgICAgICAgICAgICBpZiggYWJzKGFyW0xdLWFyW0wrMV0pPD0xICkgdXBSKz0yOwogICAgICAgICAgICAgICAgaWYoKFItMSktKEwrMSkrMSA9PSBkcFtMKzFdW1ItMV0gJiYKICAgICAgICAgICAgICAgICAgICBhYnMoYXJbUl0tYXJbTF0pPD0xKSB7dXBNKz0yO30KICAgICAgICAgICAgICAgIHVwTCA9IG1heCh1cEwsZHBbTF1bUi0xXSksIHVwUiA9IG1heCh1cFIsZHBbTCsxXVtSXSkgOwogICAgICAgICAgICAgICAgZHBbTF1bUl0gPSBtYXgodXBNLG1heCh1cEwsdXBSKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcHJpbnRmKCIlZFxuIixkcFsxXVtuXSk7CiAgICB9Cn0=