n, k = map(int, input().split()) A = list(map(int, input().split())) dpl = [[False]*(k+1) for i in range(n+1)] dpr = [[False]*(k+1) for i in range(n+1)] dpl[0][0] = True dpr[n][0] = True for i, a in enumerate(A): for j in range(k+1): dpl[i+1][j] = dpl[i][j] for j in range(k+1): if dpl[i][j] and j+a <= k: dpl[i+1][j+a] = True for i in range(n-1, -1, -1): a = A[i] for j in range(k+1): dpr[i][j] = dpr[i+1][j] for j in range(k+1): if dpr[i+1][j] and j+a <= k: dpr[i][j+a] = True if not dpl[n][k]: print(-1) exit() ans = 0 for i in range(n): flag = True for j in range(k+1): if dpl[i][j] and dpr[i+1][k-j]: flag = False break if flag: ans += 1 print(ans)