/*
    OBI 2026 - Fase 2
    Cabo de Guerra
    Solução linear: mantém os 3 maiores cabos a cada número lido, ao final testa.
    
    Sem ordenar todo o vetor, mantemos apenas os 3 maiores valores vistos.
    
    Complexidade: O(N)
*/

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    int n, x;
    cin >> n >> x;

    // top[0] >= top[1] >= top[2] são os 3 maiores
    int top[3] = {0, 0, 0};

    for (int i = 0; i < n; i++) {
        int a;
        cin >> a;
        if (a >= top[0]) {
            top[2] = top[1];
            top[1] = top[0];
            top[0] = a;
        } else if (a >= top[1]) {
            top[2] = top[1];
            top[1] = a;
        } else if (a > top[2]) {
            top[2] = a;
        }
    }

    // Testa resposta 1
    if (top[0] >= x) {
        cout << 1 << "\n";
        return 0;
    }

    // Testa resposta 2
    if (top[0] + top[1] - 10 >= x) {
        cout << 2 << "\n";
        return 0;
    }

    // Testa resposta 3
    if (top[0] + top[1] + top[2] - 20 >= x) {
        cout << 3 << "\n";
        return 0;
    }

    cout << -1 << "\n";
    return 0;
}
