#include<bits/stdc++.h>
using namespace::std;
int main() {
int n, k;
scanf("%d %d", &n, &k);
priority_queue<long long, vector<long long>, greater<long long>> Q;
for(int i = 0; i < n; i++) {
int x;
scanf("%d", &x);
Q.emplace(x);
}
int cnt = 0;
while(Q.size() >= 2 and Q.top() < k) {
long long x = Q.top(); Q.pop();
long long y = Q.top(); Q.pop();
Q.emplace(x + 2 * y);
cnt += 1;
}
if(Q.top() < k) puts("-1");
else printf("%d\n", cnt);
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlOjpzdGQ7CgppbnQgbWFpbigpIHsKICAgIGludCBuLCBrOwogICAgc2NhbmYoIiVkICVkIiwgJm4sICZrKTsKICAgIHByaW9yaXR5X3F1ZXVlPGxvbmcgbG9uZywgdmVjdG9yPGxvbmcgbG9uZz4sIGdyZWF0ZXI8bG9uZyBsb25nPj4gUTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBpbnQgeDsKICAgICAgICBzY2FuZigiJWQiLCAmeCk7CiAgICAgICAgUS5lbXBsYWNlKHgpOwogICAgfQogICAgaW50IGNudCA9IDA7CiAgICB3aGlsZShRLnNpemUoKSA+PSAyIGFuZCBRLnRvcCgpIDwgaykgewogICAgICAgIGxvbmcgbG9uZyB4ID0gUS50b3AoKTsgUS5wb3AoKTsKICAgICAgICBsb25nIGxvbmcgeSA9IFEudG9wKCk7IFEucG9wKCk7CiAgICAgICAgUS5lbXBsYWNlKHggKyAyICogeSk7CiAgICAgICAgY250ICs9IDE7CiAgICB9CiAgICBpZihRLnRvcCgpIDwgaykgcHV0cygiLTEiKTsKICAgIGVsc2UgcHJpbnRmKCIlZFxuIiwgY250KTsKICAgIHJldHVybiAwOwp9