#2798

#include <iostream>
using namespace std;

int main()
{
    int n, m, num;
    int sum=-1;
    int min=987654321;
    int* card;

    cin >> n >> m;
    card = new int[n];
    for(int i=0; i<n; i++)
    {
        cin >> num;
        card[i] = num;
    }

    for(int i=0; i<n; i++)
    {
        for(int j=i+1; j<n; j++)
        {
            for(int k=j+1; k<n; k++)
            {
                if( (m - (card[i] + card[j] + card[k])) < min && (card[i] + card[j] + card[k]) <= m)
                {
                    sum = card[i] + card[j] + card[k];
                    min = m - (card[i] + card[j] + card[k]);
                    //cout << card[i] << " " << card[j] << " " << card[k] << endl;
                }       
            }
        }
    }

    cout << sum << endl;
    return 0;
}

#15721


#1713

#include <iostream>
using namespace std;

int main()
{
    int n, rec;
    int *cd = nullptr;
    int *cnt = nullptr;
    int *dur = nullptr;
    int num;

    int isitfull = 0;
    bool nowok;

    int min;
    int min_idx;

    cin >> n;
    cin >> rec;

    cd = new int[n];
    cnt = new int[n];
    dur = new int[n];

    for (int i = 0; i < n; i++)
    {
        cd[i] = 0;
        cnt[i] = 0;
        dur[i] = 0;
    }

    for (int i = 0; i < rec; i++)
    {
        cin >> num;

        for (int i = 0; i < n; i++)
        {
            cout << "숫자는 :" << num << endl;
            cout << cd[i] << " " << cnt[i] << " " << endl;
            
        }
        cout << endl;
        

        min = 987654321;
        min_idx = -1;

        nowok = false;
        while (nowok != true)
        {
            for (int j = 0; j < n; j++)
            {
                if (cd[j] == 0)
                {
                    cd[j] = num;
                    cnt[j]++;
                    isitfull++;
                    nowok = true;
                    break;
                }

                if (isitfull == n)
                {
                    for (int k = 0; k < n; k++)
                    {
                        if (min > cnt[k])
                        {
                            min = cnt[k];
                            min_idx = k;
                        }
                        if (cd[k] == num)
                        {
                            cnt[k]++;
                            nowok = true;
                            break;
                        }
                    }
                    if (nowok == true)
                        break;
                    
                    cd[min_idx] = num;
                    cnt[min_idx] = 1;
                    nowok = true;
                    break;
                }
            }
        }
    }

    for (int i = 0; i < n; i++)
    {
        cout << cd[i] << " ";
    }

    return 0;
}