1273 - 组合总和

通过次数

45

提交次数

65

Time Limit : 1 秒
Memory Limit : 128 MB

给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有不同组合 ,并以列表形式返回。先 将数组进行顺序排列 再进行组合。

candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。

对于给定的输入,保证和为 target 的不同组合数少于 150 个。

Input

第一行输入一个整数n,表示数组的长度

第二行有n个整数,表示数组里的数

第三行为一个整数target,表示需要得到的和

Output

所有可能的组合

Examples

Input

3
2 3 5
8

Output

2 2 2 2 
2 3 3 
3 5 

Hint

  • 1 <= candidates.length <= 30

  • 2 <= candidates[i] <= 40

  • candidates 的所有元素 互不相同

  • 1 <= target <= 40