You are given weights and values of **N** items, put these items in a knapsack of capacity **W** to get the maximum total value in the knapsack. Note that we have only **one quantity of each item**.

In other words, given two integer arrays **val[0..N-1]** and **wt[0..N-1]** which represent values and weights associated with **N** items respectively. Also given an integer W which represents knapsack capacity, find out the maximum value subset of **val[]** such that sum of the weights of this subset is smaller than or equal to **W.** You cannot break an item, **either pick the complete item, or don’t pick it (0-1 property)**.

**Input:**

The first line of input contains an integer **T** denoting the number of test cases. Then **T** test cases follow. Each test case consists of four lines.

The first line consists of **N** the number of items.

The second line consists of **W**, the maximum capacity of the knapsack.

In the next line are **N** space separated positive integers denoting the values of the **N** items,

and in the fourth line are **N** space separated positive integers denoting the weights of the corresponding items.

**Output:**

For each testcase, in a new line, print the **maximum possible** value you can get with the given conditions that you can obtain for each test case in a new line.

**Constraints:**

1 ≤ T ≤ 100

1 ≤ N ≤ 100

1 ≤ W ≤ 100

1 ≤ wt[i] ≤ 100

1 ≤ v[i] ≤ 100

**Example:**

**Input:**

1

3

4

1 2 3

4 5 1

**Output:**

3

blackshadows | 242 |

xmyqsh | 216 |

hanuman001 | 172 |

Adarsh Trivedi | 168 |

layman_brother | 168 |

blackshadows | 724 |

xmyqsh | 557 |

aman19 | 402 |

r0c2048 | 360 |

kspk | 331 |

akhayrutdinov | 5005 |

Ibrahim Nash | 4871 |

Quandray | 4338 |

sanjay05 | 3668 |

blackshadows | 3228 |

Login to report an issue on this page.