#include <iostream>
using namespace std;
void Fns(int a[],int low,int high)
{
if(low>=high)return ;
int pivot=low;
int temp;
int i=low,j=low+1;
while(i<=j&&j<=high)
{
while(i+1<=high&&a[i+1]<a[pivot])
i++;
j=i+1;
while(j<=high&&a[j]>=a[pivot])
j++;
if(j<=high)
{
temp=a[i+1];
a[i+1]=a[j];
a[j]=temp;
j++;
i++;
}
}
temp=a[i];
a[i]=a[pivot];
a[pivot]=temp;
Fns(a,pivot,i-1);
Fns(a,i+1,high);
}
int TotalSum(int *a,int j,int k)
{ int tempi=-1;
int i=0,count=0;
while(i<=j)
{
if(a[i]+a[j]==k)
{
count++;
i++;
if(i&&a[i-1]==a[i]&&tempi==-1)
tempi=i-1;
else if(i+1<=j&&a[i+1]!=a[i]&&tempi!=-1)
{
i=tempi;
j--;
tempi=-1;
}
}
else if(a[i]+a[j]>k)
{
j--;
}
else
i++;
}
return count;
}
int main()
{
int a[12];
for(int i=0;i<=11;i++)
cin>>a[i];
Fns(a,0,11);
for(int j=0;j<=11;j++)
cout<<a[j]<<" ";
int k;
cin>>k;
cout<<endl<<TotalSum(a,11,k);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdm9pZCBGbnMoaW50IGFbXSxpbnQgbG93LGludCBoaWdoKQp7CiAgICBpZihsb3c+PWhpZ2gpcmV0dXJuIDsKICAgIGludCBwaXZvdD1sb3c7CiAgICBpbnQgdGVtcDsKICAgIGludCBpPWxvdyxqPWxvdysxOwogICAgd2hpbGUoaTw9aiYmajw9aGlnaCkKICAgIHsKICAgICAgICB3aGlsZShpKzE8PWhpZ2gmJmFbaSsxXTxhW3Bpdm90XSkKICAgICAgICAgICAgICAgaSsrOwogICAgICAgaj1pKzE7CiAgICAgICB3aGlsZShqPD1oaWdoJiZhW2pdPj1hW3Bpdm90XSkKICAgICAgICAgICAgICAgIGorKzsKICAgICAgICBpZihqPD1oaWdoKQogICAgICAgIHsKICAgICAgICAgICAgIHRlbXA9YVtpKzFdOwogICAgICAgICAgICBhW2krMV09YVtqXTsKICAgICAgICAgICAgYVtqXT10ZW1wOwogICAgICAgICAgICBqKys7CiAgICAgICAgICAgaSsrOwogICAgICAgIH0KICAgIH0KdGVtcD1hW2ldOwphW2ldPWFbcGl2b3RdOwphW3Bpdm90XT10ZW1wOwpGbnMoYSxwaXZvdCxpLTEpOwpGbnMoYSxpKzEsaGlnaCk7Cn0KaW50IFRvdGFsU3VtKGludCAqYSxpbnQgaixpbnQgaykKeyAgaW50IHRlbXBpPS0xOwogICAgaW50IGk9MCxjb3VudD0wOwogICAgd2hpbGUoaTw9aikKICAgIHsKICAgICAgICBpZihhW2ldK2Fbal09PWspCiAgICAgICAgIHsgICAKICAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgICBpKys7CiAgICAgICAgICBpZihpJiZhW2ktMV09PWFbaV0mJnRlbXBpPT0tMSkKICAgICAgICAgICB0ZW1waT1pLTE7CiAgICAgICAgICBlbHNlIGlmKGkrMTw9aiYmYVtpKzFdIT1hW2ldJiZ0ZW1waSE9LTEpCiAgICAgICAgICB7CiAgICAgICAgICAgICAgaT10ZW1waTsKICAgICAgICAgICAgICBqLS07CiAgICAgICAgICAgICAgdGVtcGk9LTE7CiAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZihhW2ldK2Fbal0+aykKICAgICAgICAgewogICAgICAgICAgICAgai0tOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgIGkrKzsKICAgIH0KcmV0dXJuIGNvdW50Owp9CgppbnQgbWFpbigpCnsKICAKICBpbnQgYVsxMl07CiAgZm9yKGludCBpPTA7aTw9MTE7aSsrKQogIGNpbj4+YVtpXTsKICBGbnMoYSwwLDExKTsKICBmb3IoaW50IGo9MDtqPD0xMTtqKyspCiAgY291dDw8YVtqXTw8IiAiOwogIGludCBrOwogIGNpbj4+azsKICBjb3V0PDxlbmRsPDxUb3RhbFN1bShhLDExLGspOwogIHJldHVybiAwOwp9Cg==