#include <stdio.h>
const int N=1e2+10;
bool ans[N][N],went[N][N];
int a[N];
bool dp(int l,int r){
    if(l-r==1)return true;
    else if(r<l)return false;
    if(went[l][r])return ans[l][r];
    went[l][r]=true;
    if(r==l)return ans[l][r]=false;
    else if(r-l==1)return ans[l][r]=a[l]==a[r];
    else if(r-l==2)return ans[l][r]=a[l]==a[l+1]&&a[l]==a[r];
    else{
        for(int i=l;i<=r;i++)for(int j=i+1;j<=r;j++)if(a[i]==a[j]){
            ans[l][r]=dp(l,i-1)&&dp(i+1,j-1)&&dp(j+1,r);
            if(ans[l][r])return true;
        }
        for(int i=l;i<=r;i++)for(int j=i+1;j<=r;j++)if(a[i]==a[j])for(int k=j+1;k<=r;k++)if(a[j]==a[k]){
            ans[l][r]=dp(l,i-1)&&dp(i+1,j-1)&&dp(j+1,k-1)&&dp(k+1,r);
            if(ans[l][r])return true;
        }
        return ans[l][r]=false;
    }
}
int main(){
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)scanf("%d",&a[i]);
    for(int i=0;i<n;i++)for(int j=i;j<n;j++)went[i][j]=false;
    if(dp(0,n-1))printf("yes\n");
    else printf("no\n");
}
