output_description: Print the maximum total values of the items in a line.
input_description: N W
      v1 w1
      v2 w2
      :
      vN wN
      
  
  The first line consists of the integers N and W. In the following lines, the
  value and weight of the i-th item are given.
attempt: if __name__ == "__main__":
  	N,W = map(int,input().split(" "))
  	dp = [[0] * (W+1) for _ in range(N+1)]
  
  	w_lis = [0] * N
  	v_lis = [0] * N
  
  	for i in range(N):
  		v,w = map(int,input().split(" "))
  		w_lis[i] = w
  		v_lis[i] = v
  
  
  
  	for i in range(1,N+1):
  		for w in range(0,W+1):
  			if w >= w_lis[i-1]:
  				dp[i][w] = max([dp[i-1][w - w_lis[i-1]] + v_lis[i-1],dp[i-1][w]])
  
  			else:
  				dp[i][w] = dp[i-1][w]
  
  
  	print(dp[N][W])
problem_description: 0-1 Knapsack Problem
  
    
  
  You have N items that you want to put them into a knapsack. Item i has value
  vi and weight wi.
  
  You want to find a subset of items to put such that:
  
    * The total value of the items is as large as possible.
    * The items have combined weight at most W, that is capacity of the knapsack.
  
  Find the maximum total value of items in the knapsack.
samples: [{"input": "4 5\n    4 2\n    5 2\n    2 1\n    8 3", "output": "13"}, {"input": "2 20\n    5 9\n    4 10", "output": "9"}]