#include<stdio.h>
#include<stdlib.h>
int comp(const void*a, const void *b);
int main(void)
{
int sum,temp,M;
int i,j,k,N,max,check;
int num[100] = {0};
sum=-1;
check=0;
for(i=0;i<N;i++)
qsort(num
,N
,sizeof(int),comp
);
temp=num[0]+num[1];
for(i=(N-1);i>1;i--)
if((temp+num[i])<=M)
{
max=i;
sum=temp+num[i];
break;
}
for(i=0;i<(N-2);i++)
{
for(j=(i+1);j<(max-1);j++)
{
while(num[j]==num[j-1])
j++;
if(j==(max-1))
break;
temp=num[i]+num[j];
for(k=max;k>j;k--)
{
if(k==(j+1))
{
check=1;
break;
}
if(M>=(temp+num[k]))
{
sum=sum>(temp+num[k])?sum:(temp+num[k]);
break;
}
if((j+1)==k)
check=1;
}
if(check==1)
{
check=0;
break;
}
}
}
return 0;
}
int comp(const void*a, const void *b)
{
int num1=*(int*)a;
int num2=*(int*)b;
if(num1>num2)
return 1;
else return -1;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CgppbnQgY29tcChjb25zdCB2b2lkKmEsIGNvbnN0IHZvaWQgKmIpOwoKaW50IG1haW4odm9pZCkKewoJCiAgICBpbnQgc3VtLHRlbXAsTTsKICAgIGludCBpLGosayxOLG1heCxjaGVjazsKICAgIGludCBudW1bMTAwXSA9IHswfTsKICAgIAogICAgc2NhbmYoIiVkICVkIiwmTiwmTSk7CiAgICAKICAgIHN1bT0tMTsKICAgIGNoZWNrPTA7CiAgICAKICAgIGZvcihpPTA7aTxOO2krKykKICAgIAlzY2FuZigiJWQiLCZudW1baV0pOwogICAgCiAgICBwcmludGYoIiVkXG4iLG51bVswXSk7CiAgICAKICAgIHFzb3J0KG51bSxOLHNpemVvZihpbnQpLGNvbXApOwogICAgCiAgICB0ZW1wPW51bVswXStudW1bMV07CiAgICBmb3IoaT0oTi0xKTtpPjE7aS0tKQogICAgCWlmKCh0ZW1wK251bVtpXSk8PU0pCiAgICAJewogICAgCQltYXg9aTsKICAgIAkJc3VtPXRlbXArbnVtW2ldOwogICAgCQlicmVhazsKICAgIAl9CiAgICAKICAgIGZvcihpPTA7aTwoTi0yKTtpKyspCiAgICB7CiAgICAJCiAgICAJZm9yKGo9KGkrMSk7ajwobWF4LTEpO2orKykKICAgIAl7CiAgICAJCXdoaWxlKG51bVtqXT09bnVtW2otMV0pCiAgICAJCQlqKys7CiAgICAJCQogICAgCQlpZihqPT0obWF4LTEpKQogICAgCQkJYnJlYWs7CiAgICAJCQogICAgCQl0ZW1wPW51bVtpXStudW1bal07CiAgICAJCQogICAgCQlmb3Ioaz1tYXg7az5qO2stLSkKICAgIAkJewogICAgCQkJaWYoaz09KGorMSkpCiAgICAJCQl7CiAgICAJCQkJY2hlY2s9MTsKICAgIAkJCQlicmVhazsKICAgIAkJCX0KICAgIAkJCWlmKE0+PSh0ZW1wK251bVtrXSkpCiAgICAJCQl7CiAgICAJCQkJc3VtPXN1bT4odGVtcCtudW1ba10pP3N1bToodGVtcCtudW1ba10pOwogICAgCQkJCWJyZWFrOwogICAgCQkJfQogICAgCQkJaWYoKGorMSk9PWspCiAgICAJCQkJY2hlY2s9MTsKICAgIAkJfQogICAgCQkKICAgIAkJaWYoY2hlY2s9PTEpCiAgICAJCXsKICAgIAkJCWNoZWNrPTA7CiAgICAJCQlicmVhazsKICAgIAkJfQogICAgCX0KICAgIAkKICAgIH0KICAgIAogICAgcHJpbnRmKCIlZFxuIixzdW0pOwogICAgCiAgICByZXR1cm4gMDsKfQoKaW50IGNvbXAoY29uc3Qgdm9pZCphLCBjb25zdCB2b2lkICpiKQp7CgoJaW50IG51bTE9KihpbnQqKWE7CglpbnQgbnVtMj0qKGludCopYjsKCWlmKG51bTE+bnVtMikKCXJldHVybiAxOwoJZWxzZSByZXR1cm4gLTE7CgkKfQo=