/*尽管这个题的标签是背包dp
但我一看数据范围这么大,还要加毛线特盘啊之类的,麻烦不会写,就果断搜了。
简单的dfs就好,不会T。
*/
#include<cstdio>
#include<cmath>
#include<iostream>
#include<map>
#include<algorithm>
using namespace std;
int n,T,num[105],ans=2147483647;
map<int,bool>f[105];
void dfs(int x,int tot)
{ if(x==n+1)ans=min(ans,abs(T-tot));
else
{
if(f[x][tot]||tot-T>ans)return;
f[x][tot]=true;ans=min(ans,abs(T-tot));
dfs(x+1,tot);dfs(x+1,tot+num[x]);
}
}
int main()
{
scanf("%d%d",&n,&T);
for(int i=1;i<=n;i++)
scanf("%d",&num[i]);
dfs(1,0);printf("%d",ans);
return 0;
}