#include <cstdio>
long long N, M;
long long T[100003];
bool check(long long x) {
long long y = M;
for (int i = 0; i < N; i ++) {
y -= (x / T[i]);
if (y <= 0) {
return true;
}
}
return false;
}
int main() {
scanf("%lld %lld", &N, &M);
for (int i = 0; i < N; i ++) {
scanf("%lld", &T[i]);
}
long long st = 1;
long long en = 1000000000;
en *= en;
while (st <= en) {
long long mid = (st + en) / 2;
if (check(mid)) {
en = mid - 1;
} else {
st = mid + 1;
}
}
printf("%lld\n", en + 1);
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KIApsb25nIGxvbmcgTiwgTTsKIApsb25nIGxvbmcgVFsxMDAwMDNdOwogCmJvb2wgY2hlY2sobG9uZyBsb25nIHgpIHsKICAgIGxvbmcgbG9uZyB5ID0gTTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSArKykgewogICAgICAgIHkgLT0gKHggLyBUW2ldKTsKICAgICAgICBpZiAoeSA8PSAwKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBmYWxzZTsKfQppbnQgbWFpbigpIHsKICAgIHNjYW5mKCIlbGxkICVsbGQiLCAmTiwgJk0pOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpICsrKSB7CiAgICAgICAgc2NhbmYoIiVsbGQiLCAmVFtpXSk7CiAgICB9CiAKICAgIGxvbmcgbG9uZyBzdCA9IDE7CiAgICBsb25nIGxvbmcgZW4gPSAxMDAwMDAwMDAwOwogICAgZW4gKj0gZW47CiAKICAgIHdoaWxlIChzdCA8PSBlbikgewogICAgICAgIGxvbmcgbG9uZyBtaWQgPSAoc3QgKyBlbikgLyAyOwogCiAgICAgICAgaWYgKGNoZWNrKG1pZCkpIHsKICAgICAgICAgICAgZW4gPSBtaWQgLSAxOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN0ID0gbWlkICsgMTsKICAgICAgICB9CiAgICB9CiAKICAgIHByaW50ZigiJWxsZFxuIiwgZW4gKyAxKTsKICAgIHJldHVybiAwOwp9