#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
//英语 看博友分析 抄博友程序 例题 动态规划 背
int inf=0x3f3f3f3f;
int n;
int L,C;
int da[1010];
int dp[1010];//抄博友分析 主题1~i最少讲课次数
int f[1010];//主题1~i最小不满意度
int DI(int t)
{
if(t==0)
{
return 0;
}else if(t>=1 && t<=10)
{
return -C;
}else
{
return (t-10)*(t-10);
}
}
int main()
{
int tag=0;
while(1)
{
if(tag++)//抄博友程序
cout<<endl;
memset(dp,0,sizeof(dp));
memset(da,0,sizeof(da));
memset(f,0,sizeof(f));
cin>>n;
if(n==0)
{
break;
}
cin>>L>>C;
for(int i=1;i<=n;i++)
{
cin>>da[i];
}
for(int i=1;i<=n;i++)
{
dp[i]=inf;
int sum=0;
for(int j=i;j>=1;j--)
{
sum+=da[j];
if(sum>L)
{
break;
}
if(dp[i]>dp[j-1]+1)
{
dp[i]=dp[j-1]+1;
f[i]=f[j-1]+DI(L-sum);
}else if(dp[i]==(dp[j-1]+1))
{
if(f[i]>f[j-1]+DI(L-sum))
{
f[i]=f[j-1]+DI(L-sum);
}
}
}
}
printf("Case %d:\n\n",tag);
printf("Minimum number of lectures: %d\n",dp[n]);
printf("Total dissatisfaction index: %d\n",f[n]);
}
return 0;
}