#include #include int days; int money; int state[40000]; int states; bool loop() { scanf("%d %d", &days, &money); if(days == 0) return false; if(days == 1) { printf("0\n"); return true; } int last; // bool up = true; states = 0; for(int i = 0; i < days; i++) { int read; scanf("%d", &read); if(i == 0) { state[0] = read; states++; last = read; continue; } if(i == 1) { if(days == 2) { state[1] = read; states++; break; } if(read > last) up = true; else up = false; last = read; continue; } if(i == days -1) { state[states] = last; states++; state[states] = read; states++; break; } if(read > last && !up) { state[states] = last; states++; last = read; up = true; continue; } if(read < last && up) { state[states] = last; states++; last = read; up = false; continue; } last = read; } //int min = 1000000; int max = 0; int bla = 0; for(int i = 0; i < states; i++) { for(int j = i+1; j < states; j++) { int zisk = ((money / state[i]) * state[j]) - (money - (money%state[i])); if(bla < zisk) { bla = zisk; } /*if(max - min < state[j]-state[i]) { max = state[j]; min = state[i]; }*/ } } printf("%d\n", bla); /*if(min >= max) { printf("0\n"); } else { int buy = ((money / min) * max) - (money - (money%min)); printf("%d\n", buy); }*/ return true; } int main() { while(loop()); return 0; }