#include<stdio.h>//两组数据4 2 2 5 5 结果10
//6 2 5 2 5 5 2 结果12
#include<string.h>//求左右大于等于当前数的长度乘于这个数
#define N 101000
__int64 l[N],r[N],a[N];
int main() {
__int64 n,h,i,ans;
while(scanf("%I64d",&n),n) {
for(i=1;i<=n;i++) {
scanf("%I64d",&a[i]);
l[i]=i;r[i]=i;
}
for(i=2;i<=n;i++) {
h=i;
while(a[i]<=a[h-1]&&h>1)
h=l[h-1];
l[i]=h;
}
for(i=n-1;i>=1;i--) {
h=i;
while(a[i]<=a[h+1]&&h<n)
h=r[h+1];
r[i]=h;
}
ans=0;
for(i=1;i<=n;i++) {
h=r[i]-l[i]+1;
h=a[i]*h;
if(h>ans)
ans=h;
}
printf("%I64d
",ans);
}
return 0;
}