#include int main() { int d, m, i, j, minc, maxc; int p[70000]; int min[70000][3]; int max[70000][2]; long pr, pr0; while (1) { scanf("%d", &d); if (!d) break; scanf("%d", &m); for (i = 0; i < d; i++) scanf("%d", &p[i]); minc = 0; maxc = 0; for (i = 0; i < d; i++) if (((i > 0 && p[i-1] < p[i]) || (i == 0)) && ((p[i+1] < p[i] && i < d - 1) || (i == d - 1))) { max[maxc][0] = p[i]; max[maxc++][1] = i; } else if (((i > 0 && p[i-1] > p[i]) || (i == 0)) && ((p[i+1] > p[i] && i < d - 1) || (i == d - 1))) { min[minc][2] = m / p[i]; min[minc][0] = p[i] * min[minc][2]; min[minc++][1] = i; } /* for (i = 0; i < minc; i++) printf("%d ", min[i][0]); printf("\n"); for (i = 0; i < maxc; i++) printf("%d ", max[i][0]); printf("\n"); */ pr = 0; for (i = 0; i < minc; i++) for (j = 0; j < maxc; j++) if (max[j][1] > min[i][1]) { pr0 = ((min[i][2]) * max[j][0]) - min[i][0]; if (pr0 > pr) pr = pr0; } printf("%ld\n", pr); } return 0; }