def solution(numbers, target):
count = 0 #global
def dfs(i, targetSum):
nonlocal count
#guard closure - count == len(numbers)
if i == len(numbers):
if targetSum == target:
count += 1
return
dfs(i+1, targetSum + numbers[i])
dfs(i+1, targetSum - numbers[i])
dfs(0,0)
return count