N, S = map(int, input().split())
data = list(map(int, input().split()))
tmp = [0] + [i for i in data]
answer = 0
def DFS(s, lst):
global answer
if sum(lst)==S and len(lst):
answer+=1
for i in range(s+1, N+1):
DFS(i, lst+[tmp[i]])
DFS(0, [])
print(answer)
청소기 방향 cd = 0(북), 1(동), 2(남), 3(서) # cd: current direction dx = [-1, 0, 1, 2] dy = [0, 1, 0, -1]
청소기가 왼쪽 방향으로 회전한다. 현재 만약 서쪽이라면, 남->동->북->서 방향으로 회전 (현재 만약 3, 2->1->0->3 으로 회전) IDEA: 보수를 더해주고 나머지 구하기 => (dr+3)%4 2-> 5%4 -> 1 1 -> 4%4 -> 0 0 -> 3%4 -> 3 3 -> 6%4 -> 2
2) 1번 항목부터 식을 세워보기.
1. 현재 칸이 아직 청소되지 않은 경우, 현재 칸을 청소한다.
지도 = arr / 현재위치 (cx, cy) / 벽(1),청소x(0)이니까 청소하면(2)
청소 했는지 체크 count 변수
room_map[cx][cy] = 2
cnt+=1
2. 현재 칸의 주변 4칸 중 청소되지 않은 빈 칸이 없는 경우, 바라보는 방향을 유지한 채로 한 칸 후진할 수 있다면 한 칸 후진하고 1번으로 돌아간다. 바라보는 방향의 뒤쪽 칸이 벽이라 후진할 수 없다면 작동을 멈춘다.