魔法科考试
题号:NC309234
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

小明正在参加魔法科的期末考试,考生需要根据给定的口诀组合出有效的魔法。其中,老师给了 n 个上半部分口诀 a_1, a_2, \dots, a_nm 个下半部分口诀 b_1, b_2, \dots, b_m,均用整数表示。完整的口诀包含一个上半部分口诀和一个下半部分口诀,当选用两个口诀 a_ib_j,将组合出完整口诀 S = a_i + b_j

S 满足 S \le n + mS 为质数时,魔法是有效的。魔法的种类只和 S 的大小有关。如果每个上半部分口诀和每个下半部分口诀在不同的组合中可以重复使用,小明想知道一共可能组合出多少种不同的有效魔法?

输入描述:

输入共三行。

- 第一行为两个正整数 n, m
- 第二行为 n 个由空格分开的正整数 a_1, a_2, \dots, a_n
- 第三行为 m 个由空格分开的正整数 b_1, b_2, \dots, b_m

输出描述:

输出共 1 行,一个整数表示答案。
示例1

输入

复制
3 4
2 3 10
3 4 5 1

输出

复制
3

说明

可以组合出 3, 5, 7 这三个有效魔法。
(2+1=3, 2+3=5, 3+4=7, 注意 S 必须 \le n+m = 7)

备注:

**评测用例规模与约定**

- 对于 20% 的评测用例,n, m \le 200
- 对于 60% 的评测用例,n, m \le 2000
- 对于 100% 的评测用例,1 \le n, m \le 200001 \le a_i, b_i \le 20000