#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
const int maxn=105;
const int inf=0x3f3f3f3f;
const int limit=0*CLOCKS_PER_SEC;
int dp_maxn[maxn][maxn],dp_minn[maxn][maxn],a[maxn],ans,start;
void dfs(int l,int r,int now)
{
if(l>=r)
{
ans=max(ans,now);
return;
}
if(now+dp_minn[l][r]>=0)
return;
if(now+dp_maxn[l][r]<=ans)
return;
if(now+dp_maxn[l][r]<0)
{
ans=max(ans,dp_maxn[l][r]+now);
return;
}
if (clock()-start>limit)
return;
if(a[l]<a[r])
{
dfs(l+1,r-1,now+a[l]-a[r]);
dfs(l,r-2,now+a[r-1]-a[r]);
}
else
{
dfs(l+1,r-1,now+a[r]-a[l]);
dfs(l+2,r,now+a[l+1]-a[l]);
}
}
int main()
{
int t,n,i,j;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d",a+i);
for(i=1;i<n;i++)
{
dp_maxn[i-1][i]=-abs(a[i]-a[i-1]);
dp_minn[i-1][i]=dp_maxn[i-1][i];
}
for(j=1;j<n/2;j++)
{
for(i=1+j*2;i<n;i++)
{
if(a[i-1-j*2]>=a[i])
{
dp_maxn[i-1-j*2][i]=max(-a[i-1-j*2]+a[i]+dp_maxn[i-j*2][i-1],-a[i-1-j*2]+a[i-j*2]+dp_maxn[i-j*2+1][i]);
dp_minn[i-1-j*2][i]=min(-a[i-1-j*2]+a[i]+dp_minn[i-j*2][i-1],-a[i-1-j*2]+a[i-j*2]+dp_minn[i-j*2+1][i]);
}
else if(a[i-1-j*2]<a[i])
{
dp_maxn[i-1-j*2][i]=max(-a[i]+a[i-1-j*2]+dp_maxn[i-j*2][i-1],-a[i]+a[i-1]+dp_maxn[i-j*2-1][i-2]);
dp_minn[i-1-j*2][i]=min(-a[i]+a[i-1-j*2]+dp_minn[i-j*2][i-1],-a[i]+a[i-1]+dp_minn[i-j*2-1][i-2]);
}
}
}
ans=-inf;
start=clock();
dfs(0,n-1,0);
if(ans>-inf)
printf("%d\n",-ans);
else
printf("The child will be unhappy...\n");
}
return 0;
}