Start: 2026-06-19 17:50:00

26.6春季提高班期末测试

End: 2026-06-19 20:20:00
Now  2026-08-06 02:41:04  类型: IOI  状态: Ended 

P5. 等和选集②
Description

给定两个集合A和B,请你在集合里面选择一定的数字,让选出来的子集和相等,注意是非空子集!

例如集合A=【1,3,5,7】,B=【2,4,6,8】,如果我从A里面选择【1,3】B里面选择【4】,这两个子集和相等!

值得注意的时候,子集是没有顺序的概念【1,3】和【3,1】我们认为是相同的集合!


Input

第一行两个数字n,m,表示集合A、B包含的元素数量;

第二行n个数字a_i表示A的元素;

第三行m个数字b_i表示B的元素;

数据保证A,B集合内的元素各不相同!

Output

一个数字表示选出来的子集和相等的情况,方案数可能太多,请你输出mod 10^9+7的结果

Examples

Input

4 4
1 3 5 7
2 4 6 8

Output

12
Hint
A:{1,3} vs B:{4}
A:{1,5} vs B:{6}
A:{1,5} vs B:{2,4}
A:{1,7} vs B:{8}
A:{1,7} vs B:{2,6}
A:{3,5} vs B:{8}
A:{3,5} vs B:{2,6}
A:{3,7} vs B:{2,8}
A:{3,7} vs B:{4,6}
A:{5,7} vs B:{4,8}
A:{5,7} vs B:{2,4,6}
A:{1,3,5,7} vs B:{2,6,8}

样例1解释,一共12种;

20%的数据:n,m\leq 10,1 \leq a_i,b_i \leq 100;

50%的数据:n,m\leq 24,1\leq a_i,b_i \leq 1000;

100%的数据:n,m\leq 1000,1\leq a_i,b_i \leq 1000;

确定所有的数字加起来不超过10万

Submit

题目参数
Time Limit 1 second
Memory Limit 128 MB
Submit