output_description: Print the number of the unnecessary cards.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      N K
      a_1 a_2 ... a_N
attempt: from itertools import accumulate
  
  N, K = map(int, input().split())
  A = list(map(int, input().split()))
  
  # K以上の数はすべて必要なのでA未満の数だけを考える
  A = sorted([a for a in A if a < K], reverse=True)
  N = len(A)
  
  need = 0
  for n in range(N):  # 何枚目のカードについての判定か
      # dp1[k]:= 1 ~ i - 1までのカードを使って数jが作れるか
      dp1 = [0] * (K + 1)
      dp1[0] = 1
      for i in range(n):
          for j in range(K, -1, -1):
              if A[i] > j:
                  continue
              dp1[j] = dp1[j - A[i]]
  
      # dp2[k] := N ~ i + 1までのカードを使って数jが作れるか
      dp2 = [0] * (K + 1)
      dp2[0] = 1
      for i in range(n + 1, N):
          for j in range(K, -1, -1):
              if A[i] > j:
                  continue
              dp2[j] = dp2[j - A[i]]
      dp2 = list(accumulate(dp2))
  
      for k in range(K + 1):
          # 1 ~ i - 1番目まででkが作れない
          if not dp1[k]:
              continue
  
          # 1 ~ i - 1番目までだけで必要な条件が作れる
          if K - A[n] <= k < K:
              need += 1
              break
  
          # 範囲外参照
          if K - A[n] - k - 1 < 0:
              continue
  
          # 累積和を用いてkと組み合わせて、条件の範囲内に対応する値がN ~ i + 1までのカードで作れるかを判定
          if dp2[K - k] - dp2[K - A[n] - k - 1] > 0:
              need += 1
              break
  
  print(N - need)
  
problem_description: Statement
  
  AtCoDeer the deer has N cards with positive integers written on them. The
  number on the i-th card (1≤i≤N) is a_i. Because he loves big numbers, he calls
  a subset of the cards _good_ when the sum of the numbers written on the cards
  in the subset, is K or greater.
  
  Then, for each card i, he judges whether it is _unnecessary_ or not, as
  follows:
  
    * If, for any good subset of the cards containing card i, the set that can be obtained by eliminating card i from the subset is also good, card i is unnecessary.
    * Otherwise, card i is NOT unnecessary.
  
  Find the number of the unnecessary cards. Here, he judges each card
  independently, and he does not throw away cards that turn out to be
  unnecessary.
samples: [{"input": "3 6\n    1 4 3", "output": "1\n    \n\nThere are two good sets: {2,3} and {1,2,3}.\n\nCard 1 is only contained in {1,2,3}, and this set without card 1, {2,3}, is\nalso good. Thus, card 1 is unnecessary.\n\nFor card 2, a good set {2,3} without card 2, {3}, is not good. Thus, card 2 is\nNOT unnecessary.\n\nNeither is card 3 for a similar reason, hence the answer is 1.\n\n* * *"}, {"input": "5 400\n    3 1 4 1 5", "output": "5\n    \n\nIn this case, there is no good set. Therefore, all the cards are unnecessary.\n\n* * *"}, {"input": "6 20\n    10 4 3 10 25 2", "output": "3"}]