N, K = map(int, input().split()) A = list(map(int, input().split())) dp = [[0] * (K + 1) for i in range(N + 1)] dp2 = [[0] * (K + 1) for i in range(N + 1)] dp[0][0] = 1 dp2[0][0] = 1 for i in range(N): for j in range(K + 1): dp[i + 1][j] |= dp[i][j] dp2[i + 1][j] |= dp2[i][j] if j - A[i] >= 0: dp[i + 1][j] |= dp[i][j - A[i]] if j - A[N - 1 - i] >= 0: dp2[i + 1][j] |= dp2[i][j - A[N - 1 - i]] if not dp[N][K]: print(-1) exit() ans = 0 for i in range(1, N): flag = 0 for k in range(K + 1): flag |= (dp[i][K - k] & dp2[N - i - 1][k]) if flag: ans += 1 print(ans)