#include <bits/stdc++.h>
using namespace std;
int main()
{
long long n, H;
cin >> n >> H;
long long mx = 0, second = 0;
int cnt = 0;
for (int i = 1; i <= n; i++)
{
long long x;
cin >> x;
if (x > mx)
{
second = mx;
mx = x;
cnt = 1;
}
else if (x == mx)
{
cnt++;
}
else if (x > second)
{
second = x;
}
}
if (cnt >= 2)
{
cout << (H + mx - 1) / mx;
return 0;
}
long long l = 1;
long long r = 2 * H / (mx + second) + 2;
while (l < r)
{
long long mid = (l + r) / 2;
long long damage =
((mid + 1) / 2) * mx
+ (mid / 2) * second;
if (damage >= H)
{
r = mid;
}
else
{
l = mid + 1;
}
}
cout << l;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpCnsKICAgIGxvbmcgbG9uZyBuLCBIOwogICAgY2luID4+IG4gPj4gSDsKCiAgICBsb25nIGxvbmcgbXggPSAwLCBzZWNvbmQgPSAwOwogICAgaW50IGNudCA9IDA7CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgewogICAgICAgIGxvbmcgbG9uZyB4OwogICAgICAgIGNpbiA+PiB4OwoKICAgICAgICBpZiAoeCA+IG14KQogICAgICAgIHsKICAgICAgICAgICAgc2Vjb25kID0gbXg7CiAgICAgICAgICAgIG14ID0geDsKICAgICAgICAgICAgY250ID0gMTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoeCA9PSBteCkKICAgICAgICB7CiAgICAgICAgICAgIGNudCsrOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICh4ID4gc2Vjb25kKQogICAgICAgIHsKICAgICAgICAgICAgc2Vjb25kID0geDsKICAgICAgICB9CiAgICB9CgogICAgaWYgKGNudCA+PSAyKQogICAgewogICAgICAgIGNvdXQgPDwgKEggKyBteCAtIDEpIC8gbXg7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgbG9uZyBsb25nIGwgPSAxOwogICAgbG9uZyBsb25nIHIgPSAyICogSCAvIChteCArIHNlY29uZCkgKyAyOwoKICAgIHdoaWxlIChsIDwgcikKICAgIHsKICAgICAgICBsb25nIGxvbmcgbWlkID0gKGwgKyByKSAvIDI7CgogICAgICAgIGxvbmcgbG9uZyBkYW1hZ2UgPQogICAgICAgICAgICAoKG1pZCArIDEpIC8gMikgKiBteAogICAgICAgICAgICArIChtaWQgLyAyKSAqIHNlY29uZDsKCiAgICAgICAgaWYgKGRhbWFnZSA+PSBIKQogICAgICAgIHsKICAgICAgICAgICAgciA9IG1pZDsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgbCA9IG1pZCArIDE7CiAgICAgICAgfQogICAgfQoKICAgIGNvdXQgPDwgbDsKCiAgICByZXR1cm4gMDsKfQ==