琪露诺的数学题
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

琪露诺又来做数学题啦!

这次,琪露诺得到了两个数组 a,b,其中 a 的长度为 nb 的长度为 m (下标均从 1 开始),接着,琪露诺通过这两个数组得到了一个新的数组 c,其中 c 数组的长度为 n + m,且 c_{i} = \sum_{j + k = i} a_{j} b_{k},琪露诺想知道 \sum_{i = 1}^{n + m} i^{2} c_{i} 的值。虽然琪露诺精通⑨章算术,但是她还是想考考你,你能回答这个问题吗?

由于结果可能很大,请输出结果对 1000000007(10^9 + 7) 取模后的值。

输入描述:

第一行给出两个整数 n,m \; (1 \leq n,m \leq 10^6),表示 a 数组和 b 数组的大小。

第二行给出 n 个整数 a_i \; (1 \leq a_i \leq 10^9),表示 a 数组。

第三行给出 m 个整数 b_i \; (1 \leq b_i \leq 10^9),表示 b 数组。

输出描述:

输出 1 个整数表示答案。
示例1

输入

复制
2 3
1 2
3 4 5

输出

复制
560

说明

其中 c 数组为 \{0,3,10,13,10\}