#include<bits/stdc++.h>
using namespace std;
bool used[1005];
int sum=0;//解的个数
int n,c,s=0;//和 
int a[1005],b[1005];//后缀和

void dfs(int i)
{
	if(sum>0)//找到了 
		return;
	if(s+b[i]<c)//提前结束 
		return;
	if(s==c)
	{
		for(int j=1;j<=n;j++)
		{
			if(used[j])//usd[i]&&sum==0
				cout<<a[j]<<" ";
		}
		sum++;
		return;
	}
	if(i>n)
		return;
	if(s+a[i]>c)//used[i]=false;
	{
		dfs(i+1);
		return;
	}
	s+=a[i];
	used[i]=true;
	dfs(i+1);
	
	s-=a[i];
	used[i]=false;
	dfs(i+1);
	return;
}

int main()
{
	cin>>n>>c;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	b[n]=a[n];
	for(int i=n-1;i>=1;i--)
		b[i]=a[i]+b[i+1];
	dfs(1);
	if(sum==0)
		cout<<"No Solution!";	
    return 0;
}