#583. 分组背包

分组背包

Background

Special for beginners, ^_^

Description

一个旅行者有一个最多能装 VV 公斤的背包,现在有 nn 件物品,它们的重量分别是 W1,W2,,WnW_1,W_2,\dots,W_n,它们的价值分别为 C1,C2,,CnC_1,C_2,\dots,C_n。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。

Format

Input

11 行三个整数,VV(背包容量,V200V≤200),N(物品数量,N30N≤30)和 TT(最大组号,T10T≤10);

2N+12\dots N+1 行,每行三个整数 Wi,Ci,PiW_i,C_i,P_i,分别表示每个物品的重量,价值,所属组号。

Output

仅一行,一个数,表示最大总价值。

Samples

10 6 3
2 1 1
3 3 1
4 8 2
6 9 2
2 8 3
3 9 3
20

Limitation

1s, 1024KiB for each test case.