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: import sys
  
  def findminsum(lst,K,N):
      inf=10**10
      dp=[[inf]*N for s in range(K+1)]
      for s in range(K+1):
          for j in range(N):
              if j==0 and s<=lst[j]
                  ds[s][j]=lst[0]
              elif s>lst[j] and j>0:
                  dp[s][j]=min(dp[s-lst[j]][j-1]+lst[j], dp[s][j-1])
              elif s<=lst[j] and j>0:
                  dp[s][j]=min(lst[j],dp[s][j-1])
      # print(lst)
      # print(dp[0][:])
      # print(dp[1][:])
      # print(dp[K][:])
      return dp[K][N-1]
  
  def main():
      N,K=map(int,sys.stdin.readline().strip().split())
      cards=list(map(int,sys.stdin.readline().strip().split()))
      cards.sort()
      nn=0
      for i in range(N):
          if cards[i]<K:
              c=cards[i]
              cards[i]=0
              if findminsum(cards,K-c,N)>=K:
                  nn+=1
              cards[i]=c
          else:
              break
      print(nn)
  
  if __name__=='__main__':
      main()
  
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"}]