import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int arr[] = new int[n];
if(arr.length > 1 && arr.length < 1000)
{
for(int i =0 ; i< n ;i++)
{
arr[i] = sc.nextInt();
}
int tar = sc.nextInt();
sumtriple(arr , tar);
}
}
public static int[] mergingtwoarr(int[] one , int[] two )
{
int[] sorted = new int[one.length + two.length];
int i =0 ,j =0 ,k =0 ;
while(i < one.length && j < two.length)
{
if(one[i] < two[j])
{
sorted[k] = one[i];
k++;
i++;
}
else
{
sorted[k] = two[j];
k++;
j++;
}
}
if(i== one.length)
{
while(j<two.length)
{
sorted[k] = two[j];
k++;
j++;
}
}
if(j== two.length)
{
while(i<one.length)
{
sorted[k] = one[i];
i++;
k++;
}
}
return sorted;
}
public static int[] mergesort(int[] arr , int lo , int hi)
{
if(lo== hi)
{
int[] br = new int[1];
br[0] = arr[lo];
return br;
}
int mid = (lo + hi)/2;
int[] firsthalf = mergesort(arr , lo , mid);
int[] secondhalf = mergesort(arr , mid+1 , hi);
int[] sorted = mergingtwoarr(firsthalf , secondhalf);
return sorted;
}
public static void sumtriple(int[] arr , int target)
{
int array[] = mergesort(arr , 0 , arr.length-1);
for(int i =0 ; i<array.length ; i++)
{
int l = i+1 ;
int r = array.length -1;
while(l<r)
{
int sum = array[i] + array[l] +array[r];
if(sum > target)
{
r--;
}
else if(sum < target)
{
l--;
}
else
{
System.out.println(array[i] + ", " + array[l] + " and " + array[r]);
l++;
r--;
}
}
}
}
}
