https://www.acmicpc.net/problem/1182
"""
"""
from sys import stdin
input = stdin.readline
n, s = map(int, input().split())
num = list(map(int, input().split()))
answer = 0
tmp = []
def backtrack(idx, dep):
global answer
if len(tmp) >= 1 and sum(tmp) == s: # s가 0일때 빈 배열의 합은 0이므로 그 경우를 제외하기 위해 len(tmp) >= 1 추가
answer += 1
if dep == n:
return
for i in range(idx, len(num)): # 백트래킹을 통해 조합 구현
tmp.append(num[i])
backtrack(i+1, dep+1)
tmp.pop()
backtrack(0, 0)
print(answer)
"""
"""
from itertools import combinations
from sys import stdin
input = stdin.readline
n, s = map(int, input().split())
nums = list(map(int, input().split()))
cnt = 0
for i in range(1, n+1):
lst = list(combinations(nums, i))
for x in lst:
if sum(x) == s:
cnt += 1
print(cnt)
조합을 통해 구현하면 되는 문제.